C 2 0中,SerialPort執行方式

2021-04-18 18:44:32 字數 1536 閱讀 3609

c#2.0中,serialport執行方式[**][點評

:這幾天一直用這個控制項

,可是老是有問題

,也許這篇文章是解決問題最終的辦法了

.] serialport

中串列埠資料的讀取與寫入有較大的不同。由於串列埠不知道資料何時到達,因此有兩種方法可以實現串列埠資料的讀取。

一、執行緒實時讀串列埠;

二、事件觸發方式實現。

由於執行緒實時讀串列埠的效率不是十分高效,因此比較好的方法是事件觸發的方式。在

serialport

類中有datareceived

事件,當串列埠的讀快取有資料到達時則觸發

datareceived

事件,其中

serialport.receivedbytesthreshold

屬性決定了當串列埠讀快取中資料多少個時才觸發

datareceived

事件,預設為1。

另外,serialport.datareceived

事件執行比較特殊,其執行在輔線程,不能與主線程中的顯示資料控制項直接進行資料傳輸,必須用間接的方式實現。如下:

serialport spsend;

//spsend,spreceive

用虛擬串列埠連線,它們之間可以相互傳輸資料。spsend傳送資料

serialport spreceive;

//spreceive

接受資料

textbox txtsend;

//傳送區

textbox txtreceive;

//接受區

button btnsend;

//資料傳送按鈕

delegate

void

handleinte***ceupdatedelegate(

string

text);

//委託,此為重點

handleinte***ceupdatedelegate inte***ceupdatehandle;

public

void

initclient()

//窗體控制項已在初始化

...

public

void

btnsend_click(

object

sender,eventargs e)

...

public

void

spreceive_datareceived(

object

sender,ports.serialdatareceivedeventargs e)

...);}

private

void

updatetextbox(

string

text)

...

C 2 0 新增功能

泛型 該語言中新增了一些泛型型別,使得程式設計師能夠實現程度很高的 重用,獲得更高的集合類效能。泛型型別只存在 arity 上的不同。也可以將引數強制為特定的型別。有關更多資訊,請參見泛型型別引數。迭代器 迭代器使得規定 foreach 迴圈將如何迴圈訪問集合的內容變得更加容易。分部類 分部型別定義...

C 2 0 匿名委託

delegate經常被人用來與 相比較,其實兩者在某種程度上由很多共同點。不過delegate有很多更加強大的地方。首先,delegate中可以註冊任意多個 在乙個delegate被呼叫的時候,已經註冊的過程將會被逐個呼叫。其次,delegate允許註冊乙個物件的方法,而不像c 中指可以使用靜態方法...

C 20模組介紹

visual studio 2019 v16.8終於支援了c 20模組,有了模組,我們就可以充分結合c 模板的強大特性與物件導向的封裝思想,寫出更易於維護的規模較大的軟體了。visual c 目前已經實現了c 20模組的幾乎所有內容,也初步加入了工程配置和智慧型提示支援,但截至發文16.8pre6版...