我有一個需要與庫通信的.NET多線程環境。該庫有一些限制,因此無法在多線程環境中正常工作。我需要一種方法來解決這個問題,使多線程環境與中間層進行通信,然後調用庫。我提出瞭解決問題的解決方案,但我不相信這是最好的解決方案。我創建了一個具有運行方法的異步線程。 run方法處於無限循環中,它檢查當前任務(我設置的參數)是什麼,並執行相應的方法。同步多個線程
正如我所說,我對這個解決方案根本不信服,但它正確地完成了這項工作。所以請告訴我是否有更好的解決方案(尤其是與C#相關的)。
正如旁註所示,限制不是由於多個線程同時工作並導致數據損壞。我需要完全相同的線程來執行所有操作(取決於線程ID)。
你的方法聽起來不錯。帶有無限循環的線程在沒有待處理任務時應該睡眠。你的實現是否這樣做?如果沒有,發佈一些代碼,以便我們可以幫助你。 – dtb
您可能需要使用[BlockingCollection](http://msdn.microsoft.com/en-us/library/dd267312.aspx)包裝一[ConcurrentQueue ](http://msdn.microsoft.com /en-us/library/dd267265.aspx)。 –
dtb
您也可以實現一個自定義的[TaskScheduler](http://msdn.microsoft.com/zh-cn/library/system.threading.tasks.taskscheduler.aspx),它可以調度同一線程上的所有任務。 – dtb