2017-01-09 76 views
0

我正在使用AForge.NET庫來捕獲USB攝像頭, 我需要將這段代碼放在DLL上。 對於每一幀AForge.NEt庫創建一個位圖事件,我試圖將這個事件冒泡到我的主WPF窗口,爲此我在DLL庫中創建了一個簡單的事件,所以主應用程序可以啓動這個事件。 但我得到「調用線程無法訪問此對象,因爲不同的線程擁有它。」 我正在使用C#WPF - 從DLL捕獲攝像頭

Dispatcher.Invoke(() => 
    { 
     imgCamera.Source = newFrame; 
    }); 

仍然是相同的消息。任何想法?

+0

是'imgCamera'或其它線程持有的'newFrame'?你應該在將'newFrame'分配給另一個對象之前克隆'newFrame' –

+0

我試過了。它沒有幫助。 – Kulpemovitz

+0

我的猜測是第三個未被調用的線程擁有'imgCamera'或'newFrame'。嘗試在設置斷點之前檢查線程。 –

回答

0

我在花費很多時間後發現瞭解決方案。 只是做 - > newFrame.Freeze();

它需要的所有線程問題