public override void Write(TupleClass tuple) { checkFrozen(); WaitHandle[] handles = new WaitHandle[numServers]; try { for (int i = 0; i < numServers; i++) { IServerService remoteObject = view[i]; writeDelegate writeDel = new writeDelegate(remoteObject.Write); IAsyncResult ar = writeDel.BeginInvoke(tuple, url, nonce, null, null); handles[i] = ar.AsyncWaitHandle; } if (!WaitHandle.WaitAll(handles, 1000)) { setView(); Write(tuple); } else { nonce++; } } catch (SocketException) { Console.WriteLine("Error in write. Trying again..."); setView(); Write(tuple); } }
static void Main(string[] args) { writeDelegate write = Console.WriteLine; write("Simple text."); write("Formatted {0}: {1}", "text", 10); Console.ReadKey(); }