我是 C# 和 .Net 的新手,我對 WPF 執行緒安全以及不同的 WPF 頁面應該如何相互通信有一些疑問。我的主要專案會有一個名為MainWindow.cswith的類MainWndow.xaml。此外,我將有兩個頁面稱為 Page1.cswithPage1.xaml和Page2.cswith Page2.xaml。看檔案,我知道每個WPF頁面都有自己的執行緒,WPF的所有控制元件只能通過同一個執行緒訪問,如果我在同一個頁面有一個后臺執行緒,我可以在后臺訪問WPF的控制元件遍歷以下示例
controlName.Dispacher.Invoke(()=>updateControl())
我的問題是,如果相同的操作,我想Page1.cs通過更改例如 on MainWndow.xaml或Page2.xaml. 如何安全地完成這些操作?
uj5u.com熱心網友回復:
看檔案,我知道每個WPF頁面都有自己的執行緒
這是不正確的,或者至少是誤導。每個 WPF 控制元件都有一個擁有所述控制元件的執行緒,并且所有訪問都必須從該執行緒完成。但在大多數情況下,擁有所有控制元件的是同一個執行緒。所以不用擔心執行緒安全。
可能有多個視窗由不同的 UI 執行緒擁有,但很少推薦這樣做,因為所有執行緒安全和同步問題。
所以,除非你在做一些不常見的事情,否則你只需要關心你是在單個 UI 執行緒上運行,還是在后臺執行緒上運行。
uj5u.com熱心網友回復:
嘗試查看INotifyPropertyChanged,如果您打算使用 WPF 進行一些專案,我還建議您查看 MVVM Pattern
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/384781.html
