2017-09-16 6 views
1

をスローします。
私は自分のフォーム内にObservable.Timerを使用しています。
タイマーが起動すると、コールバック内でInvalidOperationExceptionが発生し、いずれかのwinformコントロールでメソッドを呼び出そうとしたときに発生します。

この問題を解決するにはどうすればよいですか?のWinforms:私は<strong>リサイズ</strong> & <strong>反応拡張子</strong>を使用していObservable.Timerは、InvalidOperationExceptionが

これは私のコードです:

Observable.Timer(TimeSpan.FromSeconds(0), TimeSpan.FromSeconds(2)) 
    .Subscribe((e) => 
    { 
     XXXXX(); 
    }); 
+0

?チェックフォームのフラグ – saeed

答えて

3

あなたがObserveOn(form)メソッドを使用する必要があります。

  1. Subscribe()メソッドの前にObserveOn(form)を追加
  2. をnugetパッケージ "System.Reactive.Windows.Forms" をインストールします。フォームのステータスは何をisDisposedさ

    Observable 
        .Timer(TimeSpan.FromSeconds(0), TimeSpan.FromSeconds(2)) 
        .ObserveOn(this) 
        .Subscribe((e) => 
        { 
         UpdateProcessStatus(); 
        }); 
    
+0

非常に良いあなたは後で答えとしてマークすることができます – saeed

関連する問題