我正在使用此代码异步写入文件
public static void AsyncWrite(string file, string text)
{
try
{
byte[] data = Encoding.Unicode.GetBytes(text);
using ( FileStream fs = new FileStream(file, FileMode.Create,
FileAccess.Write, FileShare.Read, 1, true))
fs.BeginWrite(data, 0, data.Length, null, null);
}
catch
{
}
}
由于某种原因,不时按预期将文本写入文件,Notepad ++显示以下输出:
答案 0 :(得分:2)
BeginWrite
是异步的,因此当其他事情发生时,很可能会通过using
语句关闭流。
在进行异步写入时我不会使用using
。相反,我会创建一个正确的回调方法并在那里关闭流。这也可以让您有机会按照建议拨打EndWrite
。