我正在嘗試更新異步回調中的VB.Net 4.0中的依賴屬性。我覺得我正確地做了這件事,但我仍然得到「調用線程無法訪問此對象,因爲不同的線程擁有它。」錯誤。有人看到在VB.Net 4.0中使用委託的更好方法嗎?訪問UI線程以更改WPF中的依賴屬性
Private WithEvents myObj as CallingObject
Private Delegate Sub MyErrorDel(ByVal strError as string)
Public Property ErrorMessage As String
Get
Return CStr(GetValue(ErrorMessageProperty))
End Get
Set(ByVal value As String)
SetValue(ErrorMessageProperty, value)
End Set
End Property
Private Sub MySub()
myObj.CallFuncAsync()
End Sub
Private Sub DisplayError(ByVal strError as String)
'Set Dependancy Property value Bound to UI Textbox
ErrorMessage = strError
End Sub
Private Sub myObj_CallFuncCompleted(Byval sender as Object, ByVal e as CallFuncEventArgs)
'Call delegate and pass in error string as argument
Dim delError as MyErrorDel
delError = New MyErrorDel(AddressOf DisplayError)
delError("An error occured")
Me.Dispatcher.Invoke(delError, System.Windows.Threading.DispatcherPriority.Normal, Nothing)
End Sub
每當得到的ErrorMessage設置DisplayError內異常得到投擲,即使我使用的調度員打電話DisplayError。
如果有人看到我嘗試從異步回調訪問Dependancy Properties的方式有任何問題,我真的很感激反饋。
感謝您的幫助!
哦,我很新在博客上的代碼的問題。如何更好地制定這個問題的任何建議,將受到歡迎,以及。