소프트웨어의 GUI 스레드를 돌보고 있습니다.Invoke 및 BeginInvoke가 호출되었지만 해결되지 않았습니다.
기본 API에서 지속적으로 폴링해야하는 gridview 데이터를 표시해야합니다.
데이터를 업데이트하는 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와 모노 위에 실행 중입니다. (이 아무것도 변경하는 경우) 해결 :