これはばかげた質問かもしれませんが、ロックを使用して割り当てを行う必要がありますか、それとも単純に結果を返すことができますか?
例えば:
ファイル名の 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);
}