激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C# - C# 串口接收數據中serialPort.close()死鎖的實例

C# 串口接收數據中serialPort.close()死鎖的實例

2022-02-13 15:16隨心小寶 C#

下面小編就為大家分享一篇C# 串口接收數據中serialPort.close()死鎖的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

最近在做一個有關高鐵模擬倉顯示系統的客戶端程序,在這個程序中要運用串口serialPort傳輸數據,因為每次接收數據結束后要更新UI界面,所以就用到了的Invoke,將更新UI的程序代碼封裝到一個方法中,然后通過Incoke調用,程序跑起來沒有任何問題,但是當你執行serialPort.close()是程序就會發生死鎖,整個程序卡在那里動都動不了。

上網查了很多資料,有各種這樣的說法,有的說定義一個接收數據的標志,如果在執行關閉程序是進行判斷,如果數據接收完了就關閉串口,沒有的話繼續執行,但是經過親自測試并沒有什么卵用,最后自己研究invoke的時候發現還有Begininvoke,同時也發現了他們之間的不同,begininvoke用于后臺更新UI數據無需等待的情況,而invoke用于后臺更新UI數據無需要等待的情況,弄明白這兩個之間的不同之后才明白原來執行serialPort.close()發生死鎖的原因就是invoke在作祟,改成begininvoke就不會出現死鎖問題。

直接上代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
SerialPort serialPort1 = new SerialPort(“COM5”, 115200, Parity.None, 8, StopBits.One); //初始化串口設置
//定義委托
public delegate void Displaydelegate(byte[] InputBuf);
Byte[] OutputBuf = new Byte[8];
public Displaydelegate disp_delegate;
 
//接收數據委托
disp_delegate = new Displaydelegate(DispUI);
serialPort1.DataReceived += new SerialDataReceivedEventHandler(Comm_DataReceived);
 
//串口讀取數據處理函數
public void Comm_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
 
Byte[] InputBuf = new Byte[8];
 
try
{
serialPort1.Read(InputBuf, 0,6); //讀取緩沖區的數據,每次讀取6個字節的數據
System.Threading.Thread.Sleep(100);
this.BeginInvoke(disp_delegate, InputBuf);//disp_delegate是定義的委托事件,在委托事件中調用修改UI的程序
}
catch (TimeoutException ex) //超時處理
{
MessageBox.Show(ex.ToString());
}
 
}
 
//更新UI界面
public void DispUI(byte[] InputBuf)
{
 
string str = System.Text.Encoding.Default.GetString(InputBuf);
// Console.WriteLine(str);
string strW = str.Substring(0, 2);//截取str的子串,從index=0開始截取長度為2的字符串
int OutStrW = int.Parse(strW);
string strS = str.Substring(2, 2);//截取str的子串,從index=2開始截取長度為2的字符串
int OutStrS = int.Parse(strS);
OutstrWen = (OutStrW - 4).ToString();
textBox8.Text = strW;
textBox9.Text = (OutStrW - 4).ToString();
textBox10.Text = strS;
textBox11.Text = (OutStrS - 10).ToString();
}

以上這篇C# 串口接收數據中serialPort.close()死鎖的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/hexiaobao/archive/2017/11/28/7909103.html

延伸 · 閱讀

精彩推薦
  • C#Unity3D實現虛擬按鈕控制人物移動效果

    Unity3D實現虛擬按鈕控制人物移動效果

    這篇文章主要為大家詳細介紹了Unity3D實現虛擬按鈕控制人物移動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一...

    shenqingyu060520232410972022-03-11
  • C#C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    這篇文章主要介紹了C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題,簡單描述了訪問者模式的定義并結合具體實例形式分析了C#使用訪問者模式解決長...

    GhostRider9502022-01-21
  • C#WPF 自定義雷達圖開發實例教程

    WPF 自定義雷達圖開發實例教程

    這篇文章主要介紹了WPF 自定義雷達圖開發實例教程,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下...

    WinterFish13112021-12-06
  • C#C#通過KD樹進行距離最近點的查找

    C#通過KD樹進行距離最近點的查找

    這篇文章主要為大家詳細介紹了C#通過KD樹進行距離最近點的查找,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    帆帆帆6112022-01-22
  • C#C#裁剪,縮放,清晰度,水印處理操作示例

    C#裁剪,縮放,清晰度,水印處理操作示例

    這篇文章主要為大家詳細介紹了C#裁剪,縮放,清晰度,水印處理操作示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    吳 劍8332021-12-08
  • C#深入解析C#中的交錯數組與隱式類型的數組

    深入解析C#中的交錯數組與隱式類型的數組

    這篇文章主要介紹了深入解析C#中的交錯數組與隱式類型的數組,隱式類型的數組通常與匿名類型以及對象初始值設定項和集合初始值設定項一起使用,需要的...

    C#教程網6172021-11-09
  • C#C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    這篇文章主要介紹了C# 實現對PPT文檔加密、解密及重置密碼的操作方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下...

    E-iceblue5012022-02-12
  • C#C#實現XML文件讀取

    C#實現XML文件讀取

    這篇文章主要為大家詳細介紹了C#實現XML文件讀取的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Just_for_Myself6702022-02-22
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 一区二区三高清 | 欧美日韩国产中文字幕 | 又黄又爽又色无遮挡免费 | 国产精品久久久久久久久久10秀 | 精品久久中文网址 | 成人精品久久久 | 中文字幕在线播放一区 | 国产精品美女久久久久久网站 | 538在线精品 | 精品成人在线 | 国产高清一区 | 欧美成人一二三区 | 久久成人综合网 | 一级网站 | 久久久精品综合 | 毛片视频网址 | 久草在线高清视频 | 亚洲国产网站 | 久久综合久久综合久久 | 亚洲欧洲日韩av | 91精品国产乱码久久久久 | 日日摸夜夜添夜夜添牛牛 | 国产女厕一区二区三区在线视 | 国产小视频一区 | 91网视频在线观看 | 久久久久久久久亚洲精品 | 欧美性a视频 | 亚洲一区二区三区日本久久九 | 本站只有精品 | 国产亚洲精品久久久久久大师 | 久久精品资源 | 亚洲一区二区三区视频免费 | 狠狠操电影 | 欧美性视频一区二区 | 91av国产在线| 九九热精品在线 | 国产色爱综合网 | 国产免费福利视频 | 能看的毛片网站 | 91aa.app| 成人免费福利网站 |