0

1つのプロパティを持つQueueItemオブジェクトがあります。ConcurrentBagリストでそれを見つけて、値を変更する必要があります。どうやってするか?

QueueItemList = new ConcurrentBag<QueueItem>()

linqを使用して、このようにConcurrentBagのオブジェクトをクエリできます

MyItem =  QueueItemList.Where(match);
MyItem.Status = changeThis;

しかし、このスレッドは安全ですか?

4

1 に答える 1

1

Where操作またはその他の収集操作はスレッドセーフです。たとえば、スレッドセーフでない場合、他のスレッドのアイテム数を同時に変更した場合、操作でエラーが発生する可能性がありますが、Whereプロパティの変更はStatus関連していません。コレクションであり、スレッドセーフではありません。

于 2012-09-05T13:06:46.457 に答える