private static StreamWriter _writer = new StreamWriter("test.txt", true, Encoding.Default) { AutoFlush = true }; private async void Form1_Load(object sender, EventArgs e)
{ for (int i = 0; i < 10000; i++)
{ await _writer.WriteLineAsync(i.ToString());
} for (int i = 0; i < 10000; i++)
{
_writer.WriteLine(i);
}
}这一段代码执行,观察文件的大小发现异步方法非常慢,感觉是一个个在写出,但是同步方法却很快,一下就写完,感觉是有缓冲区一样,请问为什么会造成这个结果呢?
1 回答
慕妹3146593
TA贡献1820条经验 获得超9个赞
你是io操作啊,而且针对同一个writer对象,就好像一堆人挤着走独木桥能快么?
异步只是提高了资源使用率,增加了吞吐而已,原来执行线程会慢慢的耗着等着db写入完成或者其他操作,用了异步后让线程这样打酱油的机会就少了
- 1 回答
- 0 关注
- 983 浏览
添加回答
举报
0/150
提交
取消