public static List <RestRequestAsyncHandle> PostGatherAsync <T>(this IRestBroadCastClient broadCastclient, IRestRequest request, Action <List <BroadCastResponse <T> >, RestRequestAsyncHandle> callback) where T : new() { var results = new List <BroadCastResponse <T> >(); var handlers = new List <RestRequestAsyncHandle>(); foreach (var client in broadCastclient.Clients) { var handle = client.PostAsync <T>(request, (res, t) => { results.Add(new BroadCastResponse <T> { Url = client.BaseUrl, Data = res.Data }); if (results.Count == broadCastclient.Clients.Count) { callback(results, t); } }); handlers.Add(handle); } return(handlers); }