首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Await将暂停线程的执行,然后确定它将如何更新UI并提高性能

Await将暂停线程的执行,然后确定它将如何更新UI并提高性能
EN

Stack Overflow用户
提问于 2017-08-14 16:33:18
回答 1查看 28关注 0票数 0

我知道当我们调用异步方法时,它会释放UI线程,并在遇到await关键字时挂起线程的执行。现在假设我们从等待的方法返回一些值,如下所示:

代码语言:javascript
复制
public async Task SomeEvent()
{
   x= await Sum(2, 5); //Returns some output value
   TextBox.Text = x; // updates the result in the UI 
}

现在,根据我的理解,由于UI线程在遇到await关键字时返回到调用此"SomeEvent“的方法,因此必须在主线程上执行所有与UI相关的操作。现在在上面的程序中,UI忙于执行一些其他操作,因为它从执行上面的方法中解放出来,当等待的进程异步执行完成时,UI将如何更新。

EN

回答 1

Stack Overflow用户

发布于 2017-08-14 17:49:19

有一种叫做SynchronizationContext的东西。简单地说,完成一些异步工作的线程将等待(将被放入队列中),等待UI上下文再次空闲并在其中运行。这看起来像是立即发生的,但实际上并非如此。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45670441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档