我遇到了一个问题,其中ObjectDisposedException
大约有50%的时间被抛出。下面的try
(在finally
之内)中的代码引起了异常。我不知道如何处理这个。我可以吃掉异常,如下所示,但有没有办法检查和关闭对象而不会发生异常?正确避免ObjectDisposedException
public static FindResponse Discover(FindCriteria findCriteria,
DiscoveryEndpoint discoveryEndpoint = null)
{
DiscoveryClient discoveryClient = null;
try
{
if (discoveryEndpoint == null) {
discoveryEndpoint = new UdpDiscoveryEndpoint();
}
discoveryClient = new DiscoveryClient(discoveryEndpoint);
return discoveryClient.Find(findCriteria);
}
finally
{
try
{
if (discoveryClient != null)
{
discoveryClient.Close();
}
}
catch (ObjectDisposedException)
{
// Eat it.
}
}
}
你可以请张贴堆栈跟踪? –