gpt4 book ai didi

multithreading - Device.BeginInvokeOnMainThread的作用是什么?

转载 作者:行者123 更新时间:2023-12-03 11:37:14 24 4
gpt4 key购买 nike

我希望有人向我解释什么是Device.BeginInvokeOnMainThread,它的作用是什么?

还有一些使用它的情况的例子。

最佳答案

仅举一个例子。

假设您有一个异步方法DoAnyWorkAsync,如果您以这种方式调用它(仅作为示例):

 DoAnyWorkAsync().ContinueWith ((arg) => {
StatusLabel.Text = "Async operation completed...";
});
StatusLabel是XAML中的标签。

异步操作完成后,上面的代码将不会在标签中显示消息,因为回调位于与UI线程不同的另一个线程中,因此该回调无法修改UI。

如果您更新了相同的代码,只需将 StatusLabel文本更新包含在 Device.BeginInvokeOnMainThread中,如下所示:
 DoAnyWorkAsync().ContinueWith ((arg) => {
Device.BeginInvokeOnMainThread (() => {
StatusLabel.Text = "Async operation completed...";
});
});

不会有任何问题。

自己尝试,将 DoAnyWorkAsync()替换为 Task.Delay(2000)

关于multithreading - Device.BeginInvokeOnMainThread的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44121760/

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