私が持っている場合:
var myObjects = new ConcurrentBag<object>();
そして、次の方法でオブジェクトを削除してみてください。
foreach (var myObject in myObjects.ToArray())
{
myObjects.TryTake(out myObject);
}
コンパイラは次のように文句を言います:「読み取り専用ローカル変数を割り当てターゲットとして使用することはできません」
それでも、foreach内にローカル参照を追加すると、コンパイルされます。
foreach (var myObject in myObjects.ToArray())
{
var localReference = myObject;
myObjects.TryTake(out localReference);
}
ここで何が起こっているのですか?