2014-04-15 20 views
0

串口中斷處理程序如何工作?串口中斷處理程序如何工作?

想象一下,您只使用這樣

Dispatcher.CurrentDispatcher.Invoke(DispatcherPriority.Background, 
new System.Action(() => 
{ 
    dosthwith(serial port.ReadExisting()); 
} 

串口中斷處理程序和同時做與現有的緩衝區中的數據的另一個數據到達和處理程序再次調用的東西。我想知道這些東西是如何工作的?他們是兩個不同的功能,就像兩個線程一樣工作嗎?

+1

中斷處理程序位於設備驅動程序中。 ReadExisting()調用只讀取驅動程序在其接收緩衝區內存儲的任何內容。您從不想像這樣編寫代碼,而是使用DataReceived事件。 –

回答

0

這正是它所做的。 Dispatcher Class提供了用於管理線程的工作項目隊列的服務,並且System.Action封裝了一個沒有參數且不返回值的方法。

這意味着您可以在與正在接收數據的線程並行的線程上處理傳入數據。

+0

所以任何想法我應該如何管理這些線程之間的優先級和數據依賴關係? – MajidKhalili