Ich erstelle parallele Aufgaben und diese Aufgaben verwendet die gleichen statischen Listen, ich weiß, dass während der Programmierung Multithread Application Lock ist genug, um Listen threadsafe, aber funktioniert es auch mit TPL?TPL generische Liste Verwendung
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);
oder wenn zwei parallele Aufgabe zur gleichen Liste erreichen können?
Es ist schwer zu sagen, ohne tatsächlich mehr von Ihrem Code zu sehen: z. Wie greift der andere Thread auf die 'List' zu? – svick