Async FileStream将“NUL”写入文件

时间:2012-07-02 13:42:37

标签: c# .net

我正在使用此代码异步写入文件

    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 ++显示以下输出:

enter image description here

1 个答案:

答案 0 :(得分:2)

BeginWrite是异步的,因此当其他事情发生时,很可能会通过using语句关闭流。

在进行异步写入时我不会使用using。相反,我会创建一个正确的回调方法并在那里关闭流。这也可以让您有机会按照建议拨打EndWrite