// 结束写入 static void EndWrite(IAsyncResult asyncResult) { FileWaiter fw = (FileWaiter)asyncResult.AsyncState; fw.fs.EndWrite(asyncResult); fw.fs.Close(); fw.isFinish = true; }
// 异步写入文件 public static FileWaiter WriteFileAsync(string path, byte[] data) { // 保证目录存在 Directory.CreateDirectory(Path.GetDirectoryName(path)); // 写入文件 FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write); FileWaiter fw = new FileWaiter(fs); fs.BeginWrite(data, 0, data.Length, new AsyncCallback(EndWrite), fw); return(fw); }