Ich vermisse vielleicht etwas, aber was ist der Unterschied zwischen:
public void MyMethod()
{
Task t = Task.Factory.StartNew(DoSomethingThatTakesTime);
t.Wait();
UpdateLabelToSayItsComplete();
}
public async void MyMethod()
{
var result = Task.Factory.StartNew(DoSomethingThatTakesTime);
await result;
UpdateLabelToSayItsComplete();
}
private void DoSomethingThatTakesTime()
{
Thread.Sleep(10000);
}
Task
, die 10 ms dauert, tatsächlich eine 10-stündige AusführungTask
in Ihrem Thread ausführen würde , wodurch Sie für die gesamten 10 Stunden blockiert würden?