后台线程需要更新表单上的标签。它会生成一个事件。事件处理程序看起来像这样
void ShowResults(object sender,EventArgs e)
{
....
SetText( results.ToString() );
}
delegate void SetTextCallback(string text);
private void SetText(string text)
{
if (this.resultsLabel.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(SetText);
this.Invoke(d, new object[] { text });
}
else
{
this.resultsLabel.Text = text;
}
}
标签正在快速更新,一切似乎都在运作。问题是,当我关闭窗体时,UI会锁定。如果我发表声明
SetText( results.ToString() );
然后表单正确关闭。如何让它正常关闭?