goo*_*ate 4 c# recursion asynchronous locking
我有一个递归函数,可以生成多个异步任务。每个任务都会更新一个公共字典对象。
我可以与其他线程共享锁对象作为函数中的参数吗?
public class RecursiveTest
{
void DoRecursiveWork(ref object myDictLock, dictionary<string,string> myDict)
{
// yadda.. async code that calls DoRecursiveWork()
}
}
Run Code Online (Sandbox Code Playgroud)
假设你打算做这样的事情
// do something
lock (myDictLock) {
// access the dictionary
}
// do something else
Run Code Online (Sandbox Code Playgroud)
您可以“通过引用”或“值”传递对象(即通过对引用的引用或通过引用的值,因为object是引用类型)。在这两种情况下,锁定对象都会起作用。当您通过引用传递时,您也可以分配在递归链顶部传递的变量,尽管我怀疑这就是您打算做的事情。
| 归档时间: |
|
| 查看次数: |
2469 次 |
| 最近记录: |