使用图表控件调用非常慢

Invoke with Chart Control is terribly slow

我最近使用来自(我认为使用 .Net 4.0)COM 的套接字将我的程序移动到 x64,我什至不知道命令 "Invoke"
现在我对它了如指掌,它让我的程序陷入困境。 我做了很多简单的事情,比如:

chart1.Series[Series1].Color = Color.White;

现在我需要添加 Invoke 因为跨线程

chart1.Invoke(new Action(() => chart1.Series[Series1].Color = Color.White;

现在程序无法使用,因为它太慢了。我 运行 每秒处理 100 笔交易。
旧的 32 位版本工作正常,现在不太好 (Invoke)。

唯一改变的是所有工作正常的调用和套接字。

有没有其他方法可以加快速度?

我可以在 "batch" 中多次执行 Invoke 吗?

我需要每次都使用Invoke吗?

是的,尝试将调用捆绑在一起是值得的。您不必为每个控件单独调用 invoke。也许是这样的:

Invoke
(
    new Action
    (
        () =>
        {
            chart1.Series[Series1].Color = Color.White;
            chart2.Series[Series2].Color = Color.Blue;
        }
    )
);