2010-10-20 49 views
1

我有以下代碼:此鍵已與此集合的元素關聯

If Not Application("ServicesQueueActiveDict").Exists(nID) Then 
'we are good to process, this item is not Active....add it now 
Application("ServicesQueueActiveDict").Add nID, Now 
Else 
     'do whatever 

的「 ServicesQueueActiveDict是caprock.dictionary

我得到了這個主題引用錯誤」這個鍵已經和這個集合的一個元素相關聯了「,當If分支執行時,問題是,如果nID存在,爲什麼代碼會試圖再次添加它?不應該執行Else分支嗎?

nID是一個簡單的整數,順便說一下。

回答

1

這裏有線程問題的風險嗎?你的代碼不會顯示任何鎖定,所以執行.Exists測試和添加嘗試之間可能會有另一個線程通過?

+0

我會研究它。目前我不確定。事實上,我怎麼知道這一切呢? – crackedcornjimmy 2010-10-20 19:02:10

+0

如果這是一個線程問題,可能很難追查到。我通常使用某種形式的日誌記錄,通常使用log4net框架,因爲它很好地處理來自多個線程的消息。 – 2010-10-21 18:27:20

相關問題