gpt4 book ai didi

wpf - 锁定调度员

转载 作者:行者123 更新时间:2023-12-03 13:17:51 24 4
gpt4 key购买 nike

是否有必要锁定多个线程通过调度程序访问同一 wpf 组件的代码片段?

例子:

void ladder_OnIndexCompleted(object sender, EventArgs args)
{
lock (locker)
{
pbLadder.Dispatcher.Invoke(new Action(() => { pbLadder.Value++; }));
}
}
pbLadder是一个进度条,可以同时从多个线程引发此事件。

最佳答案

如果您要以同步方式编码到另一个线程,则不应获取锁 - 否则,如果您尝试在另一个线程(本例中为调度程序线程)中获取相同的锁,您最终会得到一个僵局。

如果 pbLadder.Value仅在 UI 线程中使用,那么您无需担心线程安全性锁定 - 所有操作都发生在同一个线程上的事实使您与许多正常的多线程问题隔离开来。事实上,导致代码使用 pbLadder.Value 的原始操作在不同的线程上执行是无关紧要的。

关于wpf - 锁定调度员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8623927/

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