1、简介
本文主要演示日常开发中利用多线程写入文件存在的问题,以及解决方案,本文使用最常用的日志案例!...2、使用File.AppendAllText写入日志
这是种常规的做法,通过File定位到日志文件所在位置,然后写入相应的日志内容,代码如下:
static string _filePath...}
static void WriteLogAsync()
{
var logRequestNum = 100000;//请求写入日志次数...内容全部写入成功,但是还没有结束,原因是,反编译
?
一直反编译下去,会发现
?...用的是同步Api,所以代码可以继续优化,同步意味着每个线程在写入文件时,当前的写入托管代码会转换成托管代码,最后,Windows会把当前写入操作的数据初始化成IRP数据包传给硬件设备,之后硬件设备开始执行写入操作