gpt4 book ai didi

c# - 确保 UI 更新在 UI 线程上

转载 作者:太空狗 更新时间:2023-10-30 00:24:52 30 4
gpt4 key购买 nike

考虑:

async Task FooAsync()
{
await BarAsync().ConfigureAwait(false);

UpdateUI(); // Bug
}

我正在寻找一种方法来系统地确保这种情况不会发生。

也许是一种命名约定,其中必须在 UI 线程上运行的方法有一个特殊的后缀。或者静态检查,其中方法上的 [UIThreadOnlyAttribute] 意味着任何调用者都必须具有相同的属性,并且不能调用 ConfigureAwait(false)

有什么建议吗?

最佳答案

只要您的应用程序合理分层,这应该不是问题。

UI 层(例如,事件处理程序)和逻辑 UI 层(例如,ViewModel)需要 UI 上下文,不应使用 ConfigureAwait。其他层应使用 ConfigureAwait。这是一个对我很有效的简单指南。

关于c# - 确保 UI 更新在 UI 线程上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21104880/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com