事件安全调用

时间:2017-01-05 12:19:45

标签: c# multithreading events interface thread-safety

假设我有这个:

public event ItemListCharged ListOfItemCharged;

protected virtual void OnItemListCharged(TreeNode t)
{
     ListOfItemCharged?.Invoke(t);
}

OnItemListCharged由一个Thread使用,我将调用" ProcessDataThread"。问题在于这个课程:

 public Form1()
 {
     InitializeComponent();
     formData = new Data(this);
     formData.ListOfItemCharged += displayTree;
 }

 private void displayTree(TreeNode racine)
 {
     liste.Nodes.Add(racine);
 }

displayTree由主线程运行," winforms线程"。所以我每次都遇到异常,因为OnItemCharged事件是由ProcessDataThread引发的。

有没有办法通过引发事件来更新侦听器而不传递另一个委托来在winform线程上调用它?

0 个答案:

没有答案