Я забочусь о потоке 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 ...» напечатан, но «внутреннее тело ...» никогда не печатается.
Я бегу сверху на единство3d и моно. (Если это меняет что-нибудь)
Спасибо всем, кто будет оказывать помощь :)