System.InvalidOperationException:“线程间操作无效: 从不是创建控件“TextBox1”的线程访问它。”...
时间: 2023-11-13 11:31:08 浏览: 221
在多线程中调用winform窗体控件的实现方法
这是一个常见的错误,通常是因为在不同的线程中访问了同一个控件。在 Windows 窗体应用程序中,UI 元素只能在创建它们的线程中访问。如果需要在不同的线程中访问 UI 元素,可以使用 Invoke 方法来在 UI 线程上执行操作。例如,如果要在另一个线程中更新一个文本框的文本,可以使用以下代码:
```
private void UpdateTextBox(string text)
{
if (textBox1.InvokeRequired)
{
textBox1.Invoke(new Action<string>(UpdateTextBox), text);
}
else
{
textBox1.Text = text;
}
}
```
这个代码片段检查是否需要调用 Invoke 方法来在 UI 线程上更新文本框的文本。如果需要,它将使用 Invoke 方法在 UI 线程上执行 UpdateTextBox 方法。否则,它将直接在当前线程上更新文本框的文本。
阅读全文