c#中调用函数交叉线程

本文关键字:线程 函数 调用 | 更新日期: 2023-09-27 18:01:57

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

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

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

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

但是如何在grid1内从SeriesCollection"Series"调用Clear()函数?

c#中调用函数交叉线程

类似如下:

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

也许这会有帮助。

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

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

此代码在创建grid1控件的线程之外的线程上运行

grid1.Invoke((MethodInvoker)(() => grid1.Series.Clear()));