問題:搭建一個C#上位機,但是如何創建后臺進行資料接收、資料發送(這兩個執行緒要實時進行),接收到的資料和界面的控制元件的輸入的資料進行邏輯處理,處理完后,將資料進行發送。采用UDP協議進行收發資料,目前單獨會進行接收資料,但是要同時進行接收和發送兩個任務總是有很多錯誤,有大神能夠指點一下該如何搭建程式的框架?
uj5u.com熱心網友回復:
這種問題用LabVIEW處理的話會比較簡單,因為LabVIEW天生多執行緒而且比較容易上手。如果非要用C#的話,可以借鑒LabVIEW的思路,“生產者,消費者模式”,開一個執行緒專門采集資料,一個執行緒專門處理資料,一個執行緒專門處理UI。
希望對你有用, 實在不行可以外包。[email protected]
uj5u.com熱心網友回復:
我想問一下:對于資料采集的執行緒,是要開一個接受資料和一個發送資料的執行緒?當同時開這兩個執行緒時,會有沖突。這兩個執行緒如何才能讓各自跑各自的。因為要實時采集,必須一直開啟uj5u.com熱心網友回復:
為啥總有人糾結這個執行緒,那個執行緒。那我問你,你的UI界面,能讓你輸入,能讓你移動,能讓你回車。為啥。
為啥這里動不動就執行緒。動不動就是后臺這個,后臺那個。一個這個一個那個。
發送和接受,那里分說明這個后臺,那個后臺。
發送和接收本來天生就是異步并行,沒啥兩個執行緒,一個跑這個一個跑那個的說法
不管你是串口還是tcp,人家天生就是發送就是發送,接收就是接收,天生就是發送緩沖區,接識訓沖區,天生設計上就是并行的
uj5u.com熱心網友回復:
多執行緒異步并行,不去搶占相同的資源應該不會有沖突吧。就算是實時接收發送,但是就如樓上所說有接識訓沖區和發送緩沖區,呼叫正確就不會有沖突吧轉載請註明出處,本文鏈接:https://www.uj5u.com/net/99218.html
標籤:C#
