使用图表控件调用非常慢
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;
}
)
);
我最近使用来自(我认为使用 .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;
}
)
);