Если я понимаю ваш вопрос, думаю, вы могли бы сделать что-то вроде этого:
Task<string> getStringTask = someGetStringAsyncMethod();
Task<object> getObjectTask = someGetObjectAsyncMethod();
Task.WaitAll(new Task[] {
getStringTask,
getObjectTask,
});
string theString = getStringTask.Result();
object theObject = getObjectTask.Result();
Полагаю, если вам не нужны результаты, вы можете вызвать асинхронные c методы непосредственно в WaitAll.