如果一个Thread里有执行FileStream.Write。
但是这个Thread有可能被别人调用Thread.Abort的。会不会发生FileStream.Write写一半的情况?
还是说FileStream.Write要么就是还没写,要么就是全写进去了,不可能写一半内容的?
我个人感觉是后者,但是我不敢确定。有没有人能通过FileStream.Write的具体实现方法来解答一下这个疑问?
FileStream.Write

解决方案 »

  1.   

       var msg = "hello,world";
                var bytes = Encoding.UTF8.GetBytes(msg);
                FileStream fs = new FileStream("asia.txt", FileMode.Append, FileAccess.Write, FileShare.None, 4096, true);
                fs.BeginWrite(bytes, 0, bytes.Length, iar =>
                {
                    Stream stream = (Stream)iar.AsyncState;
                    stream.EndWrite(iar);
                    stream.Close();
                }, fs);
    异步写,没必要开线程