我知道这是几年前问过的,但希望这会帮助其他人。如果您不想担心做后台工作者或发送消息,一个简单的解决方法就是简单地更新 UI 上的内容。例如,我有一个只有我使用的工具,所以我不在乎它是否使用 UI 线程。因此,我只需将 UI 上的 textbox.text 更新为我正在处理的任何内容。这是代码片段。这是一种非常hacky,并且可能不正确的专业方法,但它确实有效。
for (int i = 0; i < txtbxURL.LineCount; i++)
{
mytest.NavigateTo(mytest.strURL);
mytest.SetupWebDoc(mytest.strURL);
strOutput = mytest.PullOutPutText(mytest.strURL);
strOutput = mytest.Tests(strOutput);
mytest.CheckAlt(mytest.strURL);
mytest.WriteError(txtbxWriteFile.Text);
txtblCurrentURL.Text = mytest.strURL;
//This ^^^ is what is being updated, which keeps the thread from throwing the exception noted above.
}