【发布时间】:2023-04-01 12:29:01
【问题描述】:
这两种方法中哪一种更适合从另一个线程更新 UI? (对我来说,它们都可以工作,但哪个更安全?) 我更喜欢 SetPropertyThreadSafe 方法,因为它需要的代码更少。
1.
label1.SetPropertyThreadSafe(() => this.label1.Text, "New Value");
2.
if (label1.InvokeRequired)
{
label1.Invoke(new MethodInvoker(delegate {
label1.Text="New Value"; }));
}
【问题讨论】:
-
define better ...否则只是基于意见...
-
不就是调用invoke的扩展方法吗?它们具有相同级别的“安全性”
-
他们做的完全一样,所以你应该使用第一个,因为它更漂亮。我们希望我们的代码漂亮,不是吗? :)
标签: c# .net multithreading backgroundworker invoke