Forse mi manca qualcosa, ma qual è la differenza tra fare:
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
che impiegasse 10 ms eseguisse effettivamente una durata di 10 oreTask
sul tuo thread, bloccandoti così per le 10 ore intere?