Il y a plusieurs façons de faire cela ... la plus simple consiste à faire en sorte que la méthode asynchrone effectue également l'opération suivante. Une autre approche populaire consiste à transmettre un rappel, c'est-à-dire
void RunFooAsync(..., Action<bool> callback) {
// do some stuff
bool result = ...
if(callback != null) callback(result);
}
Une autre approche consiste à déclencher un événement (avec le résultat dans les données event-args) lorsque l'opération asynchrone est terminée.
De plus, si vous utilisez la bibliothèque TPL, vous pouvez utiliser ContinueWith
:
Task<bool> outerTask = ...;
outerTask.ContinueWith(task =>
{
bool result = task.Result;
// do something with that
});