2014-08-28 26 views
0

在我的WP SignalR的應用程序,我使用此代碼:WPF Dispatcher.BeginInvoke代表問題

_dataHub.Subscribe("ReceiveMessage").Received += list => App.RootFrame.Dispatcher.BeginInvoke(() => Messages.Add(list[0].ToString())); 

但我必須使用類似的代碼來訂閱我的SignalR服務器應用程序。

我想這一個:

_dataHub.Subscribe("ReceiveMessage").Received += list => Dispatcher.CurrentDispatcher.BeginInvoke(() => Messages.Add(list[0].ToString())); 

我在與該委託的問題。任何幫助?

+0

什麼問題你得到? – 2014-08-28 17:27:35

+0

無法將lambda表達式轉換爲類型system.delegate,因爲它不是委託類型 – 2014-08-28 17:29:00

+0

http://stackoverflow.com/questions/14380996/cannot-convert-lambda-expression-to-type-system-delegate-because-it- is-not-ad – ethicallogics 2014-08-28 17:33:47

回答

0

如錯誤中所述,您提供的是lambda表達式而不是委託。使用Action這樣的:

_dataHub.Subscribe("ReceiveMessage").Received += list => 
      Dispatcher.CurrentDispatcher.BeginInvoke((Action)(() => 
             Messages.Add(list[0].ToString()))); 
+1

我嘗試了類似的東西,但我必須錯過一些東西:/它解決了我的問題。謝謝! – 2014-08-28 17:48:27