在C#中调用函数交叉线程

时间:2016-08-11 07:40:54

标签: c# .net multithreading winforms

我在WindowsForms中有一个名为grid1的网格。

我知道想从另一个线程中调用grid1.Series.Clear()

现在我得到通常的交叉线程异常,一个线程正在触及grid1,但是另一个线程创建了它。

我找到了很多关于如何调用grid1的直接函数的例子。

但是如何通过在grid1中调用SeriesCollection“Series”中的Clear()函数来做到这一点?

3 个答案:

答案 0 :(得分:1)

如下所示:

grid1.BeginInvoke(new MethodInvoker(() => grid1.Series.Clear()));

答案 1 :(得分:1)

也许这会有所帮助。

如果你想为此创建一个函数,这就是一个例子。

delegate void FunctionNameCallBack(InputParams);
private void FunctionName(InputParams)
{
    if (this.InvokeRequired)
    {
        var d = new FunctionNameCallBack(FunctionName);
        this.Invoke(d, InputParams);
    }
    else
    {
        // Your Code here.
    }
}

答案 2 :(得分:-1)

此代码在创建grid1控件

的线程以外的线程上运行
grid1.Invoke((MethodInvoker)(() => grid1.Series.Clear()));
相关问题