2 回答

TA貢獻1797條經驗 獲得超4個贊
經過評論里和你的討論,我想我可以回答你的問題了。
正如您自己發現的那樣,該錯誤絕對與您懷疑的那行沒有任何關系。
您會收到一個TimeoutException
有意義的消息,因為InitilizeSerialPort
您將讀取超時設置為 10 毫秒。這是非常短的,特別是考慮到您正在讀取整行,而不僅僅是幾個字節。
你確實在那里使用了更大的數字。默認值為 500 毫秒,這是一個相當不錯的時間。如果您確實需要降低,請嘗試一下,但在大多數情況下您不需要更改它。由于您正在閱讀一整行,因此實際上 500 毫秒很可能還不夠,具體取決于您每行獲得的信息量。嘗試一些值,直到它起作用(但如果 90 就足夠了,請不要將其設置為 100,而是給它一點空間)。
也許值得一提的是,超時當然是最大值。如果指定 1000ms,并且讀取需要 100ms,它將在 100ms 后返回,而不等待超時。要解決此問題,您可以完全刪除設置 -property 的行ReadTimeout
(它將使用默認值 500ms)或自行將其設置為更高的值。
遺憾的是,我無法幫助您UnauthorizedAccessException
解決上一條評論中提到的問題,因為這很大程度上取決于您的設置。如果您需要幫助,您應該提出一個新問題。
編輯:
順便說一句,你正在TimeoutException
完全吞下GetMessage
. 不要那樣做。當另一個錯誤發生時,您已經在編寫控制臺消息,因此也可以在那里執行此操作。同樣的方法也適用于SocketException
剛剛吞下的東西。永遠不要吞下異常。

TA貢獻1890條經驗 獲得超9個贊
您是否檢查過以確保args[1]
、args[2]
等是您認為的那樣?嘗試將 更改args[1]
為args[0]
并將其余部分減少 1?args[2]
->args[1]
等。
- 2 回答
- 0 關注
- 188 瀏覽
添加回答
舉報