c#子线程调用主线程的委托
时间: 2023-08-02 15:39:03 浏览: 121
在 C# 中,子线程不能直接访问主线程的 UI 控件,因为这会导致线程安全问题。可以通过使用委托来实现子线程调用主线程的 UI 控件更新操作。
首先,定义一个委托类型,用于更新 UI 控件:
```csharp
public delegate void UpdateUIDelegate(string text);
```
然后,在主线程中定义一个更新 UI 控件的方法:
```csharp
private void UpdateUI(string text)
{
// 更新 UI 控件的代码
}
```
接下来,在子线程中创建委托实例,并使用 Invoke 方法调用委托实例:
```csharp
UpdateUIDelegate updateUIDelegate = new UpdateUIDelegate(UpdateUI);
this.Invoke(updateUIDelegate, new object[] { "要更新的文本" });
```
这样就可以在子线程中更新主线程的 UI 控件了。
阅读全文