请问下执行委托和不执行的区别,我写了个例子。。
private delegate void WriteLabelDelegate(object entry);
private void WriteLoginResult(object text)
{
this.labellogin.Text = text.ToString();
}
private void SetLoginResult(string text)
{
this.labellogin.Invoke(new WriteLabelDelegate(WriteLoginResult), text);
如果上面这句我换成
WriteLoginResult(text);
有啥区别么?
}
[解决办法]
如果SetLoginResult在非主线程(界面线程)调用,那么两者就有区别了。
使用Control.Invoke由界面线程调用,是安全的。
直接调用则在当前线程调用,是不安全的。