簡體   English   中英

如何在C#DLL中訪問Dispatcher對象?

[英]How to access Dispatcher object in C# DLL?

目前,我在WPF中使用以下代碼。 但是現在我需要在不使用WPF的DLL中實現相同的功能(沒有UI)

Dispatcher.CurrentDispatcher.BeginInvoke(new Kepware.ClientAce.OpcDaClient.DaServerMgt.DataChangedEventHandler(DataChanged), DCevHndlrArray);

誰能建議我該怎么做? 您的建議將不勝感激。

只要您參考WPF框架的3個主要組件,那就沒問題

  • PresentationCore.dll中
  • PresentationFramework.dll
  • WindowsBase.dll中

比您能夠使用Dispatcher類。

只是一個建議... Dispatcher.Invoke(..)Application.Current.Dispatcher.Invoke(..)是將動作分派回Surface的兩種常用方法。 但是,只要不使用Application.Dispatcher ,就無法確保您的操作將在與UI元素正在運行的同一調度程序中執行。 由於您可以在一個AppDomain運行多個調度程序,或者如果您的DLL未加載到UI AppDomain ,則可能會遇到錯誤。

如果dll在wpf應用程序中使用,並且您包含PresentationFramework程序集,則您應該能夠使用System.Windows.Application.Current.Dispatcher

亞歷克斯

必填參考:

PresentationFramework.dll(對於Application對象)及其依賴項:

System.Xaml.dll WindowsBase.dll

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM