我有一个提供" Stop()" OperationContract的。 当它被调用时,应该关闭()ServiceHost。
public void Stop()
{
try
{
_serviceHost.Close(TimeSpan.FromSeconds(10));
}
catch (CommunicationException comEx)
{
Console.WriteLine(comEx.ToString());
_serviceHost.Abort();
}
}
当然这是一个问题,因为在尝试关闭ServiceHost时传入的请求仍处于活动状态。我该如何规避这个问题?短时间内分开线程?
public void Stop()
{
Task.Factory.StartNew(WaitAndKill);
}
private void WaitAndKill()
{
Thread.Sleep(500);
_managementServiceHost.Close();
}