/// <summary> /// Since calling "localAddress" and "externalAddress" would lock up the application, it's better to do it asynchronously. /// </summary> static public void ResolveIPs(OnResolvedIPs del) { if (isExternalIPReliable) { if (del != null) { del(localAddress, externalAddress); } } else { if (mOnResolve == null) { mOnResolve = ResolveDummyFunc; } lock (mOnResolve) { if (del != null) { mOnResolve += del; } if (mResolveThread == null) { mResolveThread = new Thread(ResolveThread); mResolveThread.Start(); } } } }
/// <summary> /// Thread function that resolves IP addresses. /// </summary> static void ResolveThread(object obj) { OnResolvedIPs callback = (OnResolvedIPs)obj; IPAddress local = localAddress; IPAddress ext = externalAddress; if (callback != null) { callback(local, ext); } }
/// <summary> /// Thread function that resolves IP addresses. /// </summary> static void ResolveThread() { IPAddress local = localAddress; IPAddress ext = externalAddress; lock (mOnResolve) { if (mOnResolve != null) { mOnResolve(local, ext); } mResolveThread = null; mOnResolve = null; } }
/// <summary> /// Thread function that resolves IP addresses. /// </summary> static void ResolveThread() { IPAddress local = localAddress; IPAddress ext = externalAddress; lock (mOnResolve) { if (mOnResolve != null) mOnResolve(local, ext); mResolveThread = null; mOnResolve = null; } }
/// <summary> /// Since calling "localAddress" and "externalAddress" would lock up the application, it's better to do it asynchronously. /// </summary> public static void ResolveIPs(OnResolvedIPs del) { if (isExternalIPReliable) { if (del != null) del(localAddress, externalAddress); } else { if (mOnResolve == null) mOnResolve = ResolveDummyFunc; lock (mOnResolve) { if (del != null) mOnResolve += del; if (mResolveThread == null) { mResolveThread = new Thread(ResolveThread); mResolveThread.Start(); } } } }
/// <summary> /// Since calling "localAddress" and "externalAddress" would lock up the application, it's better to do it asynchronously. /// </summary> static public void ResolveIPs(OnResolvedIPs del) { Thread th = new Thread(ResolveThread); th.Start(del); }