почему доступ к com-порту запрещен?

код:

static void Main(string[] args)
{
    Console.WriteLine("Memory mapped file reader started");

    using (var file = MemoryMappedFile.OpenExisting("AIDA64_SensorValues"))
    {
        using (var readerz = file.CreateViewAccessor(0, 0))
        {
            var bytes = new byte[567];
            var encoding = Encoding.ASCII;
            readerz.ReadArray<byte>(0, bytes, 0, bytes.Length);

            File.WriteAllText("C:\\myFile.txt", encoding.GetString(bytes));

            var readerSettings = new XmlReaderSettings { ConformanceLevel = ConformanceLevel.Fragment };
            using (var reader = XmlReader.Create("C:\\myFile.txt", readerSettings))
            {
                while (reader.Read())
                {
                    using (var fragmentReader = reader.ReadSubtree())
                    {
                        if (fragmentReader.Read())
                        {

                            reader.ReadToFollowing("value");
                            SerialPort port = new SerialPort("COM2", 9600, Parity.None, 8, StopBits.One);
                            port.Open();
                            port.Write(reader.ReadElementContentAsString() + ",");
                        }
                    }
                }
            }    
        }
    }

    Console.WriteLine("Press any key to exit ...");
    Console.ReadLine();
}

он читает общую память, записывает эту общую память в файл, затем тот же файл открывается с помощью программы чтения xml и разбивается xml, поскольку он имеет несколько корней, затем получает значение узла в каждом новом разделенном xml и отправляет его по порядку.он работает с первым разделенным xml, и его узел отправляется по последовательному каналу, затем он останавливается с отказом в доступе к сообщению через com-порт при попытке записи второго узла в последовательный порт.

У меня есть другое приложение, которое я сделал с таким же серийным кодом, и оно работает нормально (я просто устал, потом закрыл его) ... так странно.

11
задан dsolimano 18 September 2013 в 14:55
поделиться