C# StreamWriter的异步方法效率没同步方法高


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);
            }
        }


这一段代码执行,观察文件的大小发现异步方法非常慢,感觉是一个个在写出,但是同步方法却很快,一下就写完,感觉是有缓冲区一样,请问为什么会造成这个结果呢?


牧羊人nacy
浏览 952回答 1
1回答

慕妹3146593

你是io操作啊,而且针对同一个writer对象,就好像一堆人挤着走独木桥能快么?异步只是提高了资源使用率,增加了吞吐而已,原来执行线程会慢慢的耗着等着db写入完成或者其他操作,用了异步后让线程这样打酱油的机会就少了
打开App,查看更多内容
随时随地看视频慕课网APP