public static void serverCallback(IAsyncResult result)
{
CleanUnusedListener();
NamedPipeServerStream server = (NamedPipeServerStream)result.AsyncState;
server.EndWaitForConnection(result);
StreamReader reader = new StreamReader(server);
Listener listener = new Listener(reader, server);
listeners.Add(listener);
waitingServer = new NamedPipeServerStream(PipeName, PipeDirection.InOut, NamedPipeServerStream.MaxAllowedServerInstances, PipeTransmissionMode.Message, PipeOptions.Asynchronous);
waitingServer.BeginWaitForConnection(new AsyncCallback(serverCallback), waitingServer);
}