WPF執行緒中獲取控制元件的值和給控制元件賦值

一個有夢想的男孩發表於2018-07-24

WPF中使用執行緒操作控制元件,按平常的操作方法操作的話會報異常:呼叫執行緒無法訪問此物件,因為另一個執行緒擁有該物件。所以我們要使用Dispatcher類的BeginInvoke()與Invoke()方法。BeginInvoke()非同步執行,不等待委託結束就更新,Invoke()同步執行,需等待委託執行完。

有一個Lable控制元件:

<Label x:Name="test" Content="測試"></Label>

1.獲取控制元件的值:

string lblContent ="";

Dispatcher.Invoke(new Action(delegate
{
       lblContent=test.Content.ToString();

      //如果有其他操作也可以寫在這裡
}));

2.給控制元件賦值:

Dispatcher.Invoke(new Action(delegate
{
       test.Content="給控制元件賦值";

      //如果有其他操作也可以寫在這裡
}));

相關文章