2013-04-30 12 views
0

소프트웨어의 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와 모노 위에 실행 중입니다. (이 아무것도 변경하는 경우) 해결 :

답변

0

을 도움을 줄 것이다 모든 사람에게

감사합니다. 분명히 Application.Run 명령 외부에서 Windows Form을 만들고있었습니다. Application.Run 명령 내에서 양식을 인스턴스화하는 이유는 속임수입니다.