我正在处理一个软件的GUI线程。我必须在GridView数据中显示需要不断从底层API轮询的数据。我创建了一个名为Sync()
的方法来更新数据,我尝试使用BeginInvoke
和/或Invoke
使其保持线程安全。 {/ 1}}方法每五秒左右由一个计时器调用。
Sync
的主体永远不会被调用,因为出于某种原因,似乎我的请求永远不会从消息泵中提取出来。代码:
Sync
日志如下:
public void Sync()
{
if (this.InvokeRequired)
{
logger.Debug("Begin Invoke of Sync operation");
this.Invoke(new SyncDelegate(Sync));
logger.Debug("End Invoke of Sync operation");
}
else
{
logger.Debug("Inside body");
}
}
永远不会打印其他消息。
10:00:00 Begin Invoke of Sync operation
... other stuff ...
10:00:05 Begin Invoke of Sync operation
... other stuff ...
10:00:10 Begin Invoke of Sync operation
的情况相同。打印“结束调用...”但从不打印“内部正文...”。
我正在Unity3D和MonoDevelop之上运行(如果这改变了什么)。
答案 0 :(得分:0)
解决。显然我是在Application.Run命令之外创建Windows窗体。 出于某种原因,在Application.Run命令中实例化Form已经成功了