public void Connect (int timeout)
{
if (owner.IsConnected)
throw new InvalidOperationException ("The named pipe is already connected");
if (!Win32Marshal.WaitNamedPipe (name, timeout))
throw new Win32Exception (Marshal.GetLastWin32Error ());
Connect ();
}