c# - Await results of several different asynchronous operations using Task.WhenAny -



c# - Await results of several different asynchronous operations using Task.WhenAny -

i've been searching solution while seems must simple problem. however, every illustration find creates collection of tasks similar 1 (taken how to: extend async walkthrough using task.whenall (c# , visual basic) page on msdn):

ienumerable<task<int>> downloadtasksquery = url in urllist select processurlasync(url);

i unable want phone call different async methods , await results... more (but not because doesn't seem anything):

var gettickettasks = new list<task<ienumerable<iticket>>>(); gettickettasks.add(new task(() => model.getticketsasync(eventdate))); gettickettasks.add(new task(() => model.getguestticketsasync(eventdate))); ... gettickettasks.add(new task(() => model.getotherticketsasync(eventdate))); ienumerable<iticket>[] tickets = await task.whenall(gettickettasks);

so how can phone call number of async methods , await results using task.whenall method?

don't utilize task constructor phone call asynchronous method*. phone call these methods, store returned tasks , await of them task.whenall:

var gettickettasks = new list<task<ienumerable<iticket>>>(); gettickettasks.add(model.getticketsasync(eventdate)); gettickettasks.add(model.getguestticketsasync(eventdate)); ... gettickettasks.add(model.getotherticketsasync(eventdate)); ienumerable<iticket>[] tickets = await task.whenall(gettickettasks);

in case create task, don't start doesn't run. if did start fire actual asynchronous operations without storing returned task anywhere. means have nil await. tasks awaiting fire , forget async operation.

task.whenall has overload params alternative be:

var tickets = await task.whenall( model.getticketsasync(eventdate), model.getguestticketsasync(eventdate), model.getotherticketsasync(eventdate));

* or in other case matter.

c# .net asynchronous task-parallel-library async-await

Comments

Popular posts from this blog

formatting - SAS SQL Datepart function returning odd values -

c++ - Apple Mach-O Linker Error(Duplicate Symbols For Architecture armv7) -

php - Yii 2: Unable to find a class into the extension 'yii2-admin' -