C# 异步开始写入结束写入统一(net 2.0)
我正试图找出一种正确的方法,以异步方式将一些字节(在本例中是一个录制的.wav文件)写入硬盘 据我所知,我使用的是unity,仅限于使用Filestream.BeginWrite和EndWrite 到目前为止,我所得到的似乎是有效的,但我担心,由于我缺乏异步调用的经验,我没有在完成后正确关闭文件流,从而导致内存泄漏 我开始写这样的开头:C# 异步开始写入结束写入统一(net 2.0),c#,asynchronous,unity3d,filestream,C#,Asynchronous,Unity3d,Filestream,我正试图找出一种正确的方法,以异步方式将一些字节(在本例中是一个录制的.wav文件)写入硬盘 据我所知,我使用的是unity,仅限于使用Filestream.BeginWrite和EndWrite 到目前为止,我所得到的似乎是有效的,但我担心,由于我缺乏异步调用的经验,我没有在完成后正确关闭文件流,从而导致内存泄漏 我开始写这样的开头: object t = null; fileStream.BeginWrite(bytesData, 0, bytesData.Length, new Asy
object t = null;
fileStream.BeginWrite(bytesData, 0, bytesData.Length, new AsyncCallback(EndWriteCallback), t);
然后我有一个EndWriteCallback,它有:
public static void EndWriteCallback(IAsyncResult e){
FileStream fs = e.AsyncState as FileStream;
fs.EndWrite(e);
}
这够了吗?同样,它似乎工作正常,但我觉得我必须在某个地方调用FileStream.Close()
提前感谢正如上面评论中提到的@ChristophKn,
fs.dispose()
可能是释放资源的最佳方式。您可以fs.dipose()
filestream,或者您可以使用您需要将fs
传递到BeginWrite
而不是t
,以使e.AsyncState作为filestream
工作。