我已经阅读了文档和各种示例,但他们都在UI的上下文中讨论。
我理解不同的线程无法访问特定线程拥有的对象。但是,在我的情况下,我不知道这是如何适用的(当然,我正在做它以某种方式,我只是不能指出它。)
我正在处理的代码非常复杂,我无法重现最低限度的工作示例。
我希望看到的是使用async
和await
的最低工作示例,其中抛出此异常,因为我无法找到。
答案 0 :(得分:0)
来自Async/Await - Best Practices in Asynchronous Programming
async Task MyMethodAsync()
{
// Code here runs in the original context.
await Task.Delay(1000);
// Code here runs in the original context.
await Task.Delay(1000).ConfigureAwait(
continueOnCapturedContext: false);
// Code here runs without the original context (in this case, on the thread pool).
////////////////
// ETA: Put some UI code here and it will probably throw an exception.
}
这是获得例外的另一个例子:
await Task.Run(()=>{ /* place your UI code here */});