0
我有保存数据的列表的类别(例如:列表),也有类可用的方法哪个锁定语句更好?
- 更新列表
- 插入新项目列出并
- 删除任何项目清单
上面的插入,更新和删除方法是从多个线程中调用的。所以我必须提供锁,如下所示 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
}
感谢
由于.NET 4中也有专门收藏在像ConcurrentBag这样的框架中,你有没有看过使用这些框架? – 2013-03-04 09:03:06