所以让我们定义以下场景: 1. 线程'T'(例如GUI线程)正在执行GUI异步函数'F' 2. 在该异步函数'F'的某个点上,我们在“可等待”的对象'A'(最可能是Task / Task<>)上调用'await'。 3. 然后,“await”调用将释放/暂停执行线程'T'(在本例中为GUI线程),以便在“可等待”'A'执行其工作时运行/执行其他任务。 4. 当“可等待”'A'对象完成其工作时,异步函数'F'的执行会恢复。
在上述场景中(如果我描述得正确),哪个线程将执行“awaitable”'A'方法? 是GUI线程还是来自池中的其他线程?如果是池线程(而不是GUI线程)并且我正在访问GUI资源(例如按钮,标签,网格视图等),那么我会破坏GUI线程数据吗?请记住,我来自Java世界,那里只有一个GUI线程可以更改/操作GUI资源。
ConfigureAwait(false)
。 - Theodor Zoulias