I am using a library which does asynchronous calls and when the response is returned a callback method is called with the result. This is a simple pattern to follow but I am now hitting a obstacle. How do I do multiple calls to asynchronous methods and wait (without blocking) for them? When I got the data from all the service, I'd like to call my own callback method which will get the two (or more) values returned by the async method.
What's the correct pattern to follow here? By the way, I cannot change the library to use TPL or something else... I have to live with it.
public static void GetDataAsync(Action<int, int> callback) { Service.Instance.GetData(r1 => { Debug.Assert(r1.Success); }); Service.Instance.GetData2(r2 => { Debug.Assert(r2.Success); }); // How do I call the action "callback" without blocking when the two methods have finished to execute? // callback(r1.Data, r2.Data); }