作者GooLoo (平凡)
看板C_and_CPP
標題[問題] 多執行緒
時間Sat Sep 3 16:00:41 2016
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
BCB6
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
手邊只有VB6與BCB6
最近發現Serial port 在軟體存txt或另開一個軟體時,會出現掉資料情況,
不做這些事就正常
上網查, 發現有人在討論多執行緒,
針對serial port在執行緒範例不多
想問一下,我的問題是因為單執行緒造成的嗎?
如果是, bcb6解決這問題容易嗎? 是否有serial port範例呢?
因為vb6一些文章都說很困難
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.225.85
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1472889643.A.7F5.html
→ rephansu: 從CreateFile( "COMx"...來看, 收訊息其實都是OS在負責 09/03 22:41
→ rephansu: 不太會因為沒去處理導致掉訊息, 除非緩衝區滿了 09/03 22:42
→ rephansu: DCB , CreateFile , SetCommState , SetupComm ... 09/03 22:48
→ rephansu: 使用 Win32api 處理comport關鍵字大致上就這些 09/03 22:49
→ rephansu: 想偷懶可試試 C#的SerialPort,C#已內建多執行序的讀取 09/03 22:52
→ rephansu: 用CreateThread呼叫處理com的function就可解決問題 09/03 23:07
→ rephansu: 上面那行是說BCB6只要用CreateThread就可以建立執行緒 09/03 23:08
→ rephansu: 在該執行緒下呼叫讀Com Port就不用擔心緩衝區滿 09/03 23:11