Se ho un corpo del metodo asincrono in questo modo -Prendi l'istanza di attività corrente in un corpo di un metodo asincrono
public async Task GetSomething() {
await SendText("hi");
await SendImage("bla.bmp");
}
Come posso ottenere l'oggetto Task prima di essere restituito all'utente quando i calci attendono in
cioè ..
public async Task GetSomething() {
myTasks.Add(Task.Current);
await SendText("hi");
await SendImage("bla.bmp");
//some processing
}
in modo che da qualche altra parte posso fare
await Task.WhenAll(myTasks);
Console.WriteLine("All tasks complete");
Questo è così che posso aspettare per tutte le attività da completare prima di spegnere
Quali sono le firme per 'SendText' e' SendImage'? – oleksii
Non fa differenza. Questo è solo un codice fittizio per mostrare che GetSomething esegue più operazioni secondarie. Sostituisci quelli con Thread.Sleep (50000) se lo rende più chiaro. – NoPyGod
Sì, sì. I metodi possono restituire 'void',' Task' e 'Task', se è 'Task' o' Task 'è possibile rifattorizzare il codice. È possibile ottenere oggetti compito e aggiungerli a un singolo array. –
oleksii