我有一个包含数据列表的类(例如:列表),类中有可用的方法
- 更新列表
- 插入新项目以列出和
- 从列表中删除任何项目
上面的插入、更新和删除方法是从多个线程调用的。所以我必须提供如下的锁 Object locker = new Object();
// Insert method
lock(locker)
{
// Insert to list
}
// Update method
lock(locker)
{
// Update the list
}
现在我的问题是哪种锁定方法好,是使用上面的锁定对象还是使用锁定列表的“syncroot”方法如下。请指教。
// Insert method
lock(((ICollection)myList).SynRoot)
{
// Insert to list
}
// Update method
lock(((ICollection)myList).SynRoot)
{
// Update the list
}
谢谢