ConfigureAwait(false)
是否保证继续在不同的线程上运行,或者仅表示不必在同一线程上运行?
有什么办法可以提供这种保证吗?
我需要测试跨线程的上下文流。
最佳答案
使用 ConfigureAwait(false)
告诉等待者不要在捕获的上下文中恢复,因此忽略 SynchronizationContext
。这意味着继续将由使用 ThreadPool
线程的默认 TaskScheduler
安排。
如果原始线程是 ThreadPool
线程,延续可能在同一个线程上运行,否则你保证它是一个不同的线程。
您可以使用不带 SynchronizationContext
(或带 ConfigureAwait(false)
)的专用线程开始测试,以确保 之前和之后的线程不同>异步
操作。
关于c# - 如何保证异步方法继续在另一个线程上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27290214/