[.NET] 拒絕存取通訊埠

看板Visual_Basic作者 (愛恨惹是非)時間16年前 (2009/12/14 21:21), 編輯推噓1(1014)
留言15則, 3人參與, 最新討論串1/1
最近在使用Serial Port時遇到了一個問題, 找了很久都還沒有辦法解決, 所以想請教一下各位下面的問題, 我使用的線材為USB轉RS232之線材, 當我執行我的介面時且COM Port也已經連上, 然後執行過程中我突然將USB轉RS232拔掉後再將整個介面關掉後, 就會跳出一視窗顯示拒絕存取通訊埠, 請問一下這是我哪沒注意到嗎??? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.57.116.14

12/14 21:37, , 1F
要防呆呀 不然就別一直開開關關的
12/14 21:37, 1F

12/14 21:52, , 2F
While (Environment.TickCount-i<2000 And _isReceiviing)
12/14 21:52, 2F

12/14 21:52, , 3F
Application.DoEvents()
12/14 21:52, 3F

12/14 21:52, , 4F
塞一點時間給他
12/14 21:52, 4F
我並沒有做任何傳送接收的動作, 只是在連上Serial Port後將線材拔除, 然後直接將程式關閉下來, 就會出現此現象,好像跟Delay沒關係 ※ 編輯: JingTeng 來自: 61.57.116.14 (12/14 23:30)

12/15 00:37, , 5F
serial還沒有open? 那就隨便插拔也沒關係吧
12/15 00:37, 5F

12/15 00:38, , 6F
連上了的話要緩衝區要動一動才知道有沒資料進來
12/15 00:38, 6F

12/15 00:39, , 7F
不管有沒有資料沒進來都是在"等" 插不插上電腦也不會知道
12/15 00:39, 7F

12/15 00:42, , 8F
猜猜看 你一定沒試我說的東西對吧~ XD
12/15 00:42, 8F
請教一下nobody1,這個_isReceiving該怎麼使用? 使用情況是SerialPort1已經Open了, 然後將線材拔出後將Form關閉所出現的問題, 因為我不知道該怎麼使用_isReceiving, 所以我直接在Form_Closing裡加上Delay, 結果也是沒辦法解, 請問該怎麼做呢???

12/15 10:33, , 9F
有可能是因為要關閉程式 會執行到serial port 的close
12/15 10:33, 9F

12/15 10:33, , 10F
但執行close 時 rs232 卻已經被拔掉了
12/15 10:33, 10F
是的,但我的情況是只要線材一拔除, Serial Port就會變關閉, 即使再去close仍然無法解決此問題, 有沒有高手能幫忙阿??? 謝謝 ※ 編輯: JingTeng 來自: 61.57.116.14 (12/15 20:36)

12/16 01:06, , 11F
我自己試是發現...如果Open了沒有Close就把程式結束掉...
12/16 01:06, 11F

12/16 01:07, , 12F
他並不會自動關閉..因此當你下次在執行程式要Open的時候就會
12/16 01:07, 12F

12/16 01:07, , 13F
出錯....
12/16 01:07, 13F

12/16 10:00, , 14F
_isReceiviing是自己設的變數 用意在說明close時要等一下
12/16 10:00, 14F

12/16 10:02, , 15F
google一下囉 ^^
12/16 10:02, 15F
文章代碼(AID): #1B9ZlgJn (Visual_Basic)