2010-08-10 49 views
0

我正在尋找.NET的串行端口組件,它克服了與突然拔出USB-RS232適配器有關的內置串行端口組件的問題,以及端口打開時暫停計算機。 (拔下設備後電腦出現無法解析的錯誤或電腦在被暫停後回來)推薦第三方.NET串行端口類/組件

我一直在使用Richard Grier's solution,但從掛起狀態恢復時仍然有問題。

您會推薦第三方組件嗎?我嘗試了幾個,每個都有它們的缺點。理想情況下,我希望能夠替代標準串行端口,但我會盡我所能。

(注:如果你發現這個帖子有點模糊我很抱歉,這個問題是針對那些熟悉我的問題......這是一個非常普遍的問題。)

謝謝您的時間。

編輯:事實證明,升級到.NET 4和使用串行類在XP上正常工作,但確實在Windows 7

+0

出於好奇,這個問題突然拔掉了USB-RS232適配器?我正在使用.NET的內置串行端口組件開發一個項目,我們大量使用USB-to-RS232適配器。 – 2010-08-10 22:35:38

+0

這篇文章最好描述它:http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/0e4894cd-76db-4101-8cfc-7b7f13c1489a/ – Brad 2010-08-10 22:43:14

+0

更多:http://www.devnewsgroups。 net/group/microsoft.public.dotnet.framework/topic53568.aspx – Brad 2010-08-10 22:46:04

回答

1

工作,而這將有助於張貼哪些您嘗試過的解決方案(在推薦您已排除的某些內容中沒有意義),我可以推薦CommStudio組件。

雖然它有點昂貴,但它是一個很好的組件,並且在一些高吞吐量(當然相對來說),高度雙向的應用程序方面做得很好,我從未遇到過這個問題意外的設備移除。

+0

我沒有發佈我試過的解決方案,因爲我不想帶領任何人。也許如果有幾個人對我已經嘗試過的東西有同樣的建議,我會回去再試一次。感謝您的建議,我現在查看它! – Brad 2010-08-10 22:33:15

+0

最後,CommStudio Express是每次都可靠運行的*唯一*的東西(包括.NET 4.0中被修正的事情列表中的修復)。 – Brad 2016-04-18 15:47:26

2

通過popular demand,這是在.NET 4.0中解決的。內部SerialStream和EventRunner類有兩個關鍵變化。當Windows API返回訪問被拒絕錯誤時,SerialStream.Dispose(bool)方法可以避免觸摸串行端口,指示端口消失。這將阻止Dispose()方法和終結器崩潰。

如果嘗試清除串口錯誤失敗,則EventRunner.CallEvents()方法可避免拋出不可捕獲的異常。當模擬器在使用中從插槽中拔出時會發生這種情況。


的基本建議仍然是一樣的,但是,的SerialPort將有利於異常每當設備驅動程序的行爲不端,而不是讓你的程序邁着上沒有任何診斷的。 USB模擬器的驅動程序幾乎在串行端口使用時拔下USB連接器時都會出現問題。您需要必須使用「安全刪除硬件」托盤圖標。任何種類的設備本身不支持Plug & Play需要使用此圖標。就像串口一樣。

+0

酷!看起來我需要升級,但我認爲這將是最直接的解決方案。謝謝。 – Brad 2010-08-11 00:09:18

+0

事實證明,在.NET 4 for XP中一切正常,但在Windows 7中我仍然遇到同樣的問題!有什麼想法嗎? – Brad 2010-09-29 02:50:54