gpt4 book ai didi

wpf - 使用 Task 与 Dispatcher 进行 ui 线程操作

转载 作者:行者123 更新时间:2023-12-05 01:20:57 24 4
gpt4 key购买 nike

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center寻求指导。




9年前关闭。




我知道从另一个线程更新 UI 线程的技术。

所以我有这两种方法/技术,我应该使用哪一种?

使用任务:

var uiTask = Task.Factory.StartNew(() => {
// change something on ui thread
var action = theActionOnUiThread;
if (action != null) {
action();
}
}, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.FromCurrentSynchronizationContext());

使用调度程序:
Dispatcher.CurrentDispatcher.BeginInvoke(
new Action(() => {
// change something on ui thread
var action = theActionOnUiThread;
if (action != null) {
action();
}
}));

最佳答案

从技术角度来看,我怀疑这里是否存在“最佳”。但是我会使用调度程序方法:

  • 它使您的意图更加清晰,即您想在主 ui 线程
  • 上完成某些事情
  • 您无需纠结于所有任务工厂选项
  • Dispatcher 可以更轻松地隐藏接口(interface)后面的所有内容 (1) 允许轻松的依赖注入(inject)和单元测试

  • (1) 见 here例如

    关于wpf - 使用 Task 与 Dispatcher 进行 ui 线程操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13895916/

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