kodu:Neden com bağlantı noktasına erişim reddedildi?
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();
}
o paylaşılan hafızayı okur paylaşılan bellek daha sonra aynı dosya xml okuyucu ile açıldığında, dosya yazıyor ve birden çok kökleri vardır çünkü xml böler, sonra bir düğümün değerini alır Her yeni bölünmüş xml ve seri üzerinden gönderir. ilk bölünmüş xml üzerinde çalışır ve düğümü seri üzerinden gönderilir, daha sonra seriye ikinci düğümün yazılması girişimi sırasında com port mesajına erişim engellenir.
Aynı seri kodla yaptığım başka bir uygulama var ve gayet iyi çalışıyor (sadece yoruldum sonra kapattım.) ... bu yüzden tuhaf.
belki de bazı referansları düzgün bir şekilde kapatmıyorsunuz ve aynı app/thread'dan daha fazla erişimi reddetmek için accessor aracı açılmıyor mu? –