我有一个简单的类,可以更新标签,并且可以被不同的线程访问以报告我的应用程序的进度。它工作正常,但是当关闭这个应用程序时,这段代码总是会抛出一个关于尝试访问已处理对象的错误。
private delegate void SetLabelTextDelegate(string str1, string str2);
public void SetLabelText(string str1, string str2)
{
if (this.label1.InvokeRequired || this.label2.InvokeRequired)
{
this.Invoke(new SetLabelTextDelegate(SetLabelText), new object[] { str1, str2});
return;
}
this.label1.Text = (str1 == string.Empty) ? this.label1.Text : str1;
this.label2.Text = (str2 == string.Empty) ? this.label2.Text : str2;
}
这不是正确的做法吗?我需要添加什么以确保它在应用程序关闭时不尝试执行UI更新吗?
if (this.IsHandleCreated) ...
- canon