0
我正在照顧一塊軟件的GUI線程。Invoke和BeginInvoke被調用,但從未解決
我必須在gridview內部顯示需要持續從底層API調用的數據。
我創建了一個名爲Sync()的方法來更新數據,並且我試圖通過使用BeginInvoke和/或Invoke來使其線程安全。 Sync方法每5秒左右由一個定時器調用。
同步的主體永遠不會被調用,因爲某些原因,似乎我的請求永遠不會從消息泵中拉出。
下面是代碼:
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
從未打印的其他消息。
BeginInvoke也一樣。 「End Invoke ...」已打印,但「內部正文...」從不打印。
我在unity3d和mono之上運行。 (如果這個改變任何東西)
感謝大家誰給的幫助:)