2
크로스 스레드 예외 수정에 도움이 필요합니다. 나는 보통이 문제를 해결 호출을 사용하고 있지만, 몇 가지 이유가 wokring되지 않습니다크로스 스레드 예외 수정
void paintTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
Invoke(new InvalidateFromSepThreadDel(InvalidateFromSepThread));
}
delegate void InvalidateFromSepThreadDel();
void InvalidateFromSepThread()
{
TailGraph.Invalidate();
}
예외는 호출에 발생합니다 :
$ 예외 { "잘못된 크로스 스레드 작업 :. t을 다시 마샬링됩니다 제어 'XTailGraph' 가에 을 만들어진 스레드가 아닌 다른 스레드에서 액세스 "} System.Exception {System.InvalidOperationException}
Forms.Timer를 사용하십시오. –
TailGraph.Invoke (새로운 InvalidateFromSepThreadDel (() => TailGraph.Invalidate()))를 시도해보십시오. –
다른 스레드에서 Control.Invalidate()를 호출하면 예외가 발생하지 않습니다. Windows와 Winforms 모두. 실제로 무효화 (true)를 호출하지 않았는지 확인하십시오. –