引述馬克Gravell:多線程調用委託
///...blah blah updating files
string newText = "abc"; // running on worker thread
this.Invoke((MethodInvoker)delegate {
someLabel.Text = newText; // runs on UI thread
});
///...blah blah more updating files
我期待與WPF中這樣做,所以不能使用invoke
方法。有什麼想法嗎?該線程的東西是做我的頭:/
更詳細
我開始了新的主題,像這樣
Thread t = new Thread (LoopThread);
t.Start();
t.Join();
但縱觀LoopThread
,我想寫的UI。
UPDATE
感謝喬恩斯基特爲Dispatcher.Invoke
位。似乎MethodInvoker
也是WinForms。 WPF等同?
UPDATE 2
感謝阿德用於建議代替System.Windows.Forms.MethodInvoker
,使用System.Action
。
(你們是對有關this
參數混亂,只需要建立以去除誤差。)
總線,因爲加入SimpleInvoke
,現在我上線擊中
Extension method must be defined in a non-generic static class
public partial class MainWindow : Window
有什麼想法?
關於編輯:取代'System.Windows.Forms.MethodInvoker'你可以使用'System.Action'。 –
@Adriano謝謝!儘管如此,仍然有問題,請參閱上面的代碼。 – windowskm
2nd編輯:'SimpleInvoke'是一個擴展方法,那麼你不需要'this'作爲第一個參數。函數原型中的'this'只是擴展方法的語法。更改爲'this.SimpleInvoke((=)txtDoor1.Foreground = Brushes.Black);' –