public void executeDistributedTaskAsync() { MerchantByCategoryTask task = new MerchantByCategoryTask( ECategoryType.AUTOMOTIVE); IAsyncResult <List <Merchant> > asyncResult = proxy.BeginExecute(task, null /*callback*/, null /*state object*/); // ... //This will block until the result execution has arrived asyncResult.AsyncWaitHandle.WaitOne(); //Gets the actual result of the async execution List <Merchant> result = proxy.EndExecute(asyncResult); }