我有一個遞歸函數,產生幾個異步任務。每個任務都會更新一個常用字典對象我可以通過引用傳遞一個鎖對象嗎?
我可以與其他線程共享鎖對象作爲函數中的參數嗎?
public class RecursiveTest
{
void DoRecursiveWork(ref object myDictLock, dictionary<string,string> myDict)
{
// yadda.. async code that calls DoRecursiveWork()
}
}
當你嘗試時會發生什麼? – Dai
我不明白你爲什麼不能這樣做,但是這有點讓我覺得這是一個糟糕的設計。誰負責鎖定或解鎖?如果一個功能忘記釋放鎖定會怎麼樣? – mpen
@Mark DoRecursiveWork函數在退出前始終會鎖定並釋放鎖定。 – LamonteCristo