0

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

    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++ 有时并没有按预期将文本写入文件,而是显示以下输出:

在此处输入图像描述

4

1 回答 1

2

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

using在进行异步写入时我不会使用。相反,我会创建一个适当的回调方法并在那里关闭流。这也将使您有机会EndWrite按照建议致电。

于 2012-07-02T13:49:34.647 回答