1
我想在兩個進程之間傳遞一些信息。基本上,它是一些字符串,並且因爲我不想以任何方式限制字符串(我可以通過命令行傳遞它,因爲我產生了第二個進程)我想給共享內存一個去。 (命名管道從樣本看起來更復雜一些。)MemoryMappedFiles和StreamRead/StreamWriter第一個字符丟失
所以我只是簡單地複製/粘貼樣本(實際上,樣本使用的二進制流,我使用文本流)代碼並立即使用斷點進行同步。
發件人代碼
using (System.IO.MemoryMappedFiles.MemoryMappedFile mmf = System.IO.MemoryMappedFiles.MemoryMappedFile.CreateNew("mymappedfile", 10000))
{
using (System.IO.MemoryMappedFiles.MemoryMappedViewStream stream = mmf.CreateViewStream())
{
StreamWriter w = new StreamWriter(stream);
w.WriteLine("Hello!");
w.WriteLine("Andreas!");
w.WriteLine("Teststring #+#\"\" ,,a8&&");
//BinaryWriter writer = new BinaryWriter(stream);
w.Flush();
}
}
接收器代碼
using (MemoryMappedFile mmf = MemoryMappedFile.OpenExisting("mymappedfile"))
{
using (MemoryMappedViewStream stream = mmf.CreateViewStream(1, 0))
{
StreamReader r = new StreamReader(stream);
string str;
while ((str = r.ReadLine()) != null)
{
System.Diagnostics.Debug.WriteLine(str);
}
}
}
輸出
ello!
Andreas!
Teststring #+#"" ,,a8&&
有你好中的H!失蹤。
我應該用BinaryStreams代替還是可能是這裏的問題?
我應該已經閱讀更好,而不僅僅是複製/粘貼的HTTP:// MSDN。 microsoft.com/en-us/library/dd267552.aspx。非常感謝!! –
我也複製/調配過!我希望我做對了。 :d –