从一个线程多次调用 GUI
Several invokes to GUI from one thread
如果我 运行 从一个线程调用多个,它是否 运行 一个接一个?
例如,我有一个 ListView 控件,在从服务器获取实际信息后,我需要清除项目、更新组名称、添加新项目等。所有这些都需要多次调用 GUI。确定会按照调用的顺序执行吗?
如果从同一个线程调用,Control.Invoke
和Control.BeginInvoke
都保证执行顺序。
Control.Invoke
是同步的,因此您将无法在当前调用完成之前调用下一个 Invoke
。
Control.BeginInvoke
在幕后使用 windows 消息,并且 windows 消息在消息循环中按顺序处理,因此这也将按照与调用时相同的顺序执行.
如果我 运行 从一个线程调用多个,它是否 运行 一个接一个?
例如,我有一个 ListView 控件,在从服务器获取实际信息后,我需要清除项目、更新组名称、添加新项目等。所有这些都需要多次调用 GUI。确定会按照调用的顺序执行吗?
如果从同一个线程调用,Control.Invoke
和Control.BeginInvoke
都保证执行顺序。
Control.Invoke
是同步的,因此您将无法在当前调用完成之前调用下一个 Invoke
。
Control.BeginInvoke
在幕后使用 windows 消息,并且 windows 消息在消息循环中按顺序处理,因此这也将按照与调用时相同的顺序执行.