private Thread CreateAndStartConnectThread(EndPointLocation location) { Thread thread = new Thread(ConnectToEndPoint) { Name = string.Format("{0} connect to {1}.", id, location) }; thread.Start(location); return(thread); }
private void ConnectToEndPoint(object param) { EndPointLocation location = (EndPointLocation)param; IPEndPoint endPoint = endPoints[location]; try { EndPoint localEndPoint = GetLocalEndPoint(); if (localEndPoint == null) { return; } outgoingSockets[location] = CreateAddressReuseSocket(); outgoingSockets[location].Bind(localEndPoint); Log("Connecting to {0} ({1})...", location, endPoint); outgoingSockets[location].Connect(endPoint); Authenticate(outgoingSockets[location]); } catch (SocketException e) { Log("Connect to {0} failed: {1}", location, e.Message); } catch (ObjectDisposedException e) { Log("Outgoing to {0} socket disposed: {1}", location, e.Message); } finally { if (outgoingSockets[location] != null) { outgoingSockets[location].Close(); } } Log("Connect to {0} thread exiting.", location); }
private Thread CreateAndStartConnectThread(EndPointLocation location) { Thread thread = new Thread(ConnectToEndPoint) { Name = string.Format("{0} connect to {1}.", id, location) }; thread.Start(location); return thread; }