c# 使用 this.Invoke 安全吗?

c# is it safe using this.Invoke?

如果我想从另一个线程更新主线程中 UI 控件的值,请使用以下代码

第一次尝试 - 有效

Label1.Invoke((MethodInvoker)(()=> Label1.Text = "label"));  
button1.Invoke((MethodInvoker)(()=> button1.Text = "button")); 
textBox1.Invoke((MethodInvoker)(()=> textBox1.Text = "textBox"));  

第二次尝试 - 有效

this.Invoke((MethodInvoker)(()=> 
{
    Label1.Text = "label";  
    button1.Text = "button";
    textBox1.Text = "textBox";
}));  

第二次尝试看起来很简单,因为只需要写 "this.Invoke"
第二次尝试访问主线程 UI 控制简单

使用 2nd Try "this.Invoke" 有什么问题吗?
我想知道第二次尝试是否安全
第二次尝试是否有可能导致任何问题?

只要所有控件都与同一 UI 线程相关联,第二种方法就是安全的。 几乎总是是这种情况,但并非绝对必须是这种情况。

实际上,您几乎肯定知道您的代码是否在不同的线程中创建不同的控件(因为需要做的事情非常不寻常)。如果你不知道自己在做,暂时假设你没有,你的第二个表格应该没问题。