我最近使用套接字(我认为.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
)。
唯一改变的是Invokes和Sockets都可以正常工作。
我可以使用其他方法来加速这件事吗?
我可以在"批次"?
中多次执行Invoke
我每次都需要使用Invoke
吗?
答案 0 :(得分:0)
是的,值得尝试将调用集中在一起。您不必为每个控件单独调用invoke。也许是这样的:
Invoke
(
new Action
(
() =>
{
chart1.Series[Series1].Color = Color.White;
chart2.Series[Series2].Color = Color.Blue;
}
)
);