2012-11-12 78 views
0

我正在使用來自Ingeardrivers.com的.dll。我意識到這個問題會更適當地在該網站上提出並且已經發布到那裏,但是更多的人在這裏讓我有機會得到更好的回答。使用第三方Ingear.Net .dll的死鎖?

我是一個新手程序員,這是我的第一次線程體驗。基本上我在程序中有兩個主循環,當我將每個循環作爲「主線程」運行時,它們都可以單獨工作。問題是,當我啓動兩個線程並在這些線程中運行主循環時,在循環中的某個點他們都試圖使用Ingear.net dll,並且當一個循環已經創建了該類的一個實例時,第二個循環只是坐在構造函數上,並沒有做任何事情。

有沒有人有任何建議如何解決?

+2

你可以檢查與.dll供應商是否這個庫是線程安全的? –

回答

0

加載項是線程安全的 -

我是手動斷開通過每次控制器「controllername.disconnect()」 出於某種原因,這實際上並沒有關閉連接和我在外面就刷爆CIP連接。當我刪除它時,控制器不知何故知道自己斷開連接。

奇怪,但它的作品。

1

我建議首先檢查供應商,看看庫是否是線程安全的。

但同時您可以嘗試創建該類的單個實例,並將其作爲構造函數的一部分(或使用它設置屬性)傳遞給您的兩個線程/循環。

這很可能不起作用,但直到你嘗試纔會知道。