ここではどのような意図が表現されていますか?:
lock(Locker)
{
Task.Factory.StartNew(()=>
{
foreach(var item in this.MyNonCurrentCollection)
{
//modify non-concurrent collection
}
}, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.FromCurrentSynchonizationContext())
.ContinueWith(t => this.RaisePropertyChanged("MyNonCurrentCollection"));
}
システムlock
は が完了するまで (キューに) 入れますか、それともTask
新しい を開始するためだけにシステムをロックしTask
ますか? 後者は、役に立たない場合でもこのロックが親切であることを意味しますよね? 他人のコードから意図を見つけようとしているだけです。ここでの理想はMyNonCurrentCollection
、別のスレッドによって変更されないようにすることです。