【发布时间】:2021-08-03 09:50:47
【问题描述】:
如果我像这样创建一个新线程:
Thread thread = new Thread(.....);
thread.Start(......);
如果该线程内的方法使用await 运算符会发生什么?
我知道在正常情况下,这会导致 .Net 保存当前执行的状态并将线程返回给线程池,这样它就可以在我们等待等待的方法完成时处理其他事情,但是如果这样呢不是在线程池中的线程开始吗?
【问题讨论】:
-
这与您在控制台应用程序中执行此操作时相同 - 因为在这两种情况下都没有同步上下文
-
这是一个理论问题吗?因为无论如何你都不应该这样做。要么使用异步模式,要么使用线程,但不要混合使用。
-
所以如果我需要运行一些异步代码,我应该使用 .Wait() 来阻止它?
标签: multithreading asp.net-core async-await threadpool