我打電話使用參數化的螺紋參數化線程不保持該方法
ParameterizedThreadStart ts = delegate(object o) { ProcessDBThread(strDBName, dicMsg, objQueueItem.RunID); };
因此,TS變量應該邏輯地包含所有3個參數,我傳遞函數的所有參數,但它僅保持一個參數。
上面的代碼是在一個循環內,因此剩下的兩個參數被最新的值覆蓋。結果所有參數化線程包含不同的dicMsg
,但是相同的strDBName
。實際上,strDBName
對於每種情況都不相同。
我已經在快速監視中檢查了ts值; ((System.Delegate)(ts)).Target
這裏的Target
只包含一個參數,它應該是三個參數。
只是指出我哪裏可能出錯了!
如果你向我們展示了所有的代碼,那將會非常棒。 [mcve]對我們來說價值百萬美元。 – Enigmativity
我瞭解你的觀點,但我無法發佈整個代碼,因爲它相當冗長,不可讀。反正你的答案工作正常。 –
這不是一個觀點,它是Stack Overflow的一個很好的問題。你應該閱讀[問]和[mcve]。 – Enigmativity