我尝试编写此代码以在后台工作人员工作时更新文本框的文本。
#region variables
public delegate void updateTextBoxDelegate(string s, bool directory);
updateTextBoxDelegate delegateTextBox;
#endregion
#region somewhereInsideForm1Constructor
delegateTextBox = new updateTextBoxDelegate(updateTextBox);
#endregion
#region methods
public void updateTextBox(string s, bool directory)
{
if (directory)
{
textBox1.Text += s + System.Environment.NewLine;
}
else
{
textBox1.Text += " --> " + s + System.Environment.NewLine;
}
}
#endregion
#region somewhereInsideBackGroundWorker_doWork
delegateTextBox(path.FullName, true);
#endregion
在这种情况下会发生跨线程异常:
这里:
textBox1.Text += s + System.Environment.NewLine;
和这里:
delegateTextBox(path.FullName, true);
什么错误???
谢谢!