这可能是一个愚蠢的问题,但我是否需要使用和分配锁,或者我可以简单地返回结果。
例如:
我有一个私有帮助方法,它返回一个 IEnumerable 文件名列表。它使用锁来确保该方法在迭代 m_transfers 集合时是线程安全的。
需要任务吗...
IEnumerable<String> updated;
lock (m_transfers.Lock)
{
updated = m_transfers.Values.Where(transfer => transfer.Updated)
.Select(transfer => transfer.Filename);
}
return updated;
或者我可以做
lock (m_transfers.Lock)
{
return updated = m_transfers.Values.Where(transfer => transfer.Updated)
.Select(transfer => transfer.Filename);
}