Reactive Extensionsを学び始めたところです。そしてInvalidProgramException
、イベントから取得したオブザーバブルをサブスクライブしようとしたときに取得しました。完全なコードは次のとおりです。
public MainWindow()
{
var observable = Observable.FromEventPattern<MouseEventHandler, MouseEventArgs>(
h => this.MouseMove += h, h => this.MouseMove -= h);
observable.Subscribe(x => Debug.WriteLine("hello"));
InitializeComponent();
}
例外の詳細:
InvalidProgramException: "Common Language Runtime detected an invalid program."
at System.Reactive.Concurrency.CurrentThreadScheduler.Schedule[TState](TState state, TimeSpan dueTime, Func`3 action)
at System.Reactive.Concurrency.LocalScheduler.Schedule[TState](TState state, Func`3 action)
at System.Reactive.Producer`1.SubscribeRaw(IObserver`1 observer, Boolean enableSafeguard)
at System.Reactive.Producer`1.Subscribe(IObserver`1 observer)
at System.ObservableExtensions.Subscribe[T](IObservable`1 source, Action`1 onNext)
at FunWithReactiveUI.MainWindow..ctor() in c:\...
それで、私は何を間違っていますか?助言がありますか?ありがとう。
Rx 2.0.21114、.Net Framework 4.5を使用しています。4.0では問題なく動作します。
編集:
この単純なコードでも同じ例外が発生しました。Subscribe
デバッグ モードの .net 4.5 で失敗します。
Observable.Return(1).Subscribe(x => Console.WriteLine(x));