我有一個應用程序應該與多個自定義設備通信,其中一些使用FTDI USB到串行轉換器芯片,其中一些使用TCP。應用程序需要能夠隨時接受來自可能隨時插入或拔出的設備的數據;該應用程序充當設備和數據庫之間的橋樑。防止.net串行端口崩潰FTDI USB設備斷開連接
看起來,當設備被拔掉時,它通常會導致SerialPort類在BackgroundWorker線程中拋出異常並導致應用程序崩潰。
我目前的補救措施,這可能是荒謬的複雜的,是有一個幫助應用程序發送/接收串行端口數據並將其中繼/從TCP套接字。當我的主應用程序看到USB設備插入時,它會啓動這個其他應用程序,然後使用TCP套接字與它進行通信。如果插入多個USB設備,則會爲每個USB設備啓動一個單獨的幫助程序實例。拔下USB端口後,助手應用程序將崩潰,但「意外關機」消息將被扼殺。
這種方法很有效,但它似乎很不令人滿意。有一個更好的方法。
感謝您的回覆。如果我有時間,我會研究一下。我一直使用單獨的ap來處理端口連接,雖然這種方法感覺非常噁心,但它一直運行得很好,所以沒有主要的改變動力。但是,對於未來的項目,當然很高興。 – supercat 2010-10-13 14:50:51
NP。我一直想寫一篇關於所有這些地方的博客文章,以供將來參考,所以我可以多一點幫助,但是現在的代碼太雜亂了...... – Rogier 2010-10-14 11:50:44