0
私は並列タスクを作成し、これらのタスクは同じ静的リストを使用しています。マルチスレッドアプリケーションのロックをコーディングしながらリストのスレッドセーフを作成するのに十分ですが、TPLでも使えますか?TPL一般的なリストの使用
public static TSource FirstOrDefaultThreadSafe<TSource>(this List<TSource> source, Func<TSource, bool> predicate) where TSource : new()
{
var result=new TSource();
try
{
lock (source)
{
result = source.FirstOrDefault(predicate);
}
}
catch (System.Exception ex)
{
throw ex;
}
Task.Factory.StartNew(() => FirstOrDefaultThreadSafe(List,predicate), TaskCreationOptions.LongRunning);
2つの並列タスクが同じリストに到達できるかどうかを確認します。
コードを実際に見ることなく、言い表せません。他のスレッドは 'List'にどのようにアクセスしますか? – svick