void GetNextPrimeComplete(IAsyncResult ar) { int nextPrime = 0; var request = (NextPrimeRequest)ar.AsyncState; try { nextPrime = request.Client.EndNext(ar); } catch (TimeoutException) { Debug.Print("Client Request Timeout"); return; } catch (CommunicationException comEx) { Debug.Print("Client End Request Error: {0}", comEx.Message); return; } var result = new NextPrimeResult { RequestNumber = request.RequestNumber, NextPrime = nextPrime }; _syncRoot.Post(UpdateList, result); }