gpt4 book ai didi

c# - 将代码放在等待的任务末尾与将代码放在等待 : 之后的区别

转载 作者:太空宇宙 更新时间:2023-11-03 20:07:28 24 4
gpt4 key购买 nike

这段代码应该...

async void SomeMethodAsync() {
this.IsDoingLongRunningWork = true;
await Task.Run(() =>
{
DoLongRunningWork();
this.IsDoingLongRunningWork = false;
});
}

...与此代码块的行为不同...

async void SomeMethodAsync() {
this.IsDoingLongRunningWork = true;
await Task.Run(() =>
{
DoLongRunningWork();
});
this.IsDoingLongRunningWork = false;
}

...?

最佳答案

一方面,它们很可能在不同的线程中执行。如果 IsDoingLongRunningWork 影响用户界面(例如),那么它可能只能在 UI 线程中更改,在这种情况下,第一个代码不正确(新任务将在线程池线程中运行)第二个代码是正确的(假设该方法是从 UI 线程调用的)。

关于c# - 将代码放在等待的任务末尾与将代码放在等待 : 之后的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22150173/

24 4 0