private void ClientHostThread() { try { ClientHost.StartListening(int.Parse((string)InstanceProvider.GetHostInfo().GetGlobalValue("ClientPort"))); InstanceProvider.GetServiceLogger().AppendLine("Before process.WaitForExit()"); ParentProcessUtilities.GetParentProcess().WaitForExit(); InstanceProvider.GetServiceLogger().AppendLine("After process.WaitForExit()"); InstanceProvider.GetServiceLogger().AppendLine("Stop socket service"); ClientHost.client.Close(); GC.Collect(); } catch (ThreadAbortException abort) { InstanceProvider.GetServiceLogger().AppendLine($"WCF Thread reports {abort.Message}"); } }