wait 仍然阻塞当前 UI 线程

HPP*_*PPY 3 c# asynchronous async-await

我尝试使用以下代码在线程池中运行某些任务:

private async void button1_Click(object sender, EventArgs e)
{
   await test().ConfigureAwait(continueOnCapturedContext: false);
}
private Task test()
{
   Thread.Sleep(100000);
   return null;
}
Run Code Online (Sandbox Code Playgroud)

该代码应该在线程池中运行,但是当前的 UI 线程仍然被阻塞。

那么有人可以帮忙看一下吗?谢谢,

Ste*_*ary 5

\n

该代码应该在线程池中运行

\n
\n

不,这根本不是真的。async不在线程池线程上运行您的代码。

\n

我建议您阅读我的async简介,其中解释了它的async 作用,以及官方常见async问题解答,其中专门解决了线程池的误解:

\n
\n

\xe2\x80\x9casync\xe2\x80\x9d 关键字是否会导致方法的调用在线程池中排队?创建一个新线程?向火星发射火箭飞船?

\n

不,不,而且不。

\n
\n