Я столкнулся с проблемой, когда ObjectDisposedException
выбрасывается примерно в 50% случаев. Код внутри try
(внутри finally
) ниже вызывает исключение. Я не знаю, как с этим справиться. Я мог бы просто съесть исключение, как показано ниже, но есть ли способ проверить и закрыть объект без возникновения исключения?
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.
}
}
}