我正在使用Reactive Extensions來驗證文本框輸入。 我正在嘗試使用.Throttle(TimeSpan.FromMilliseconds(500))。使用無效擴展中的油門實現跨線程異常
但是,當我添加.Throttle()方法在.Subscribe()方法訪問UI對象時被拋出的橫線程異常。
它的工作原理100%,沒有油門,爲什麼會分手?
我的代碼:
var textChangedEvent = Observable.FromEvent<TextChangedEventArgs>(usernameTextbox, "TextChanged")
.Throttle(TimeSpan.FromMilliseconds(500))
textChangedEvent.Subscribe(changed =>
{
TextBox oUsernameTextBox = changed.Sender as TextBox;
//Accessing oUsernameTextBox throws Cross Thread Exception
});
感謝 -Oliver
+1有任何操作一個`IScheduler`重載不能被信任在與調用者相同的線程上運行。這也是最好使用`IScheduler`過載,而不是使用`ObserveOn` – 2011-01-14 13:23:58