4 Stimmen

MSDN Beispiel für die Behandlung einer Ausnahme von der TPL - Ist dies eine Race Condition?

Ich schaue mir das Beispiel für die TPL-Ausnahmebehandlung aus MSDN an @

http://msdn.microsoft.com/en-us/library/dd537614(v=VS.100).aspx

Die Grundform des Codes ist:

Task task1 = Task.Factory.StartNew(() => { throw new IndexOutOfRangeException(); });
try
{
   task1.Wait();
}
catch (AggregateException ae)
{
   throw ae.Flatten();
}

Meine Frage ist: Ist dies eine Race Condition? Was passiert, wenn task1 auslöst, bevor der Versuch ausgeführt wurde? Übersehe ich etwas, das verhindert, dass dies ein Wettlauf ist?

Müsste es nicht stattdessen so geschrieben werden?

try
{
   Task task1 = Task.Factory.StartNew(() => { throw new IndexOutOfRangeException(); });
   task1.Wait();
}
catch (AggregateException ae)
{
   throw ae.Flatten();
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X