正确避免ObjectDisposedException

鲍勃·霍恩

我遇到了一个问题,其中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.
            }
        }
    }
理查德·施耐德

怎么样

public static FindResponse Discover(FindCriteria findCriteria, DiscoveryEndpoint discoveryEndpoint = null)
{
    if (discoveryEndpoint == null) 
      discoveryEndpoint = new UdpDiscoveryEndpoint();

    using (var client = new DiscoveryClient(discoveryEndpoint))
    {
        return client.Find(findCriteria);
    }
}

更新

似乎DiscoveryClient.Dispose()会抛出异常。OP的原始方法似乎是唯一可以接受的答案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用LINQ(LINQ2SQL)避免ObjectDisposedException

来自分类Dev

CreateLinkedTokenSource引发ObjectDisposedException。如何正确安全地配置CancellationTokenSource?

来自分类Dev

避免正确执行null检查

来自分类Dev

如何解决CA2202:避免生成System.ObjectDisposedException警告

来自分类Dev

System.ObjectDisposedException。处理流编写器的正确方法是什么?

来自分类Dev

如何正确避免SWT表扩大?

来自分类Dev

正确地避免循环依赖-NestJS

来自分类Dev

避免全局变量的正确方法

来自分类Dev

使用调用避免线程错误的正确方法是什么?

来自分类Dev

如何使用Proguard的GUI?避免混淆正确的类的问题

来自分类Dev

避免在JavaScript中使用bind进行闭包是正确的吗?

来自分类Dev

PHP:正确的过程可以避免超时问题

来自分类Dev

快速的内存管理:以正确的方式创建视图并避免内存泄漏

来自分类Dev

如何以正确的方式在Istio中重写并避免404错误?

来自分类Dev

使用调用避免线程错误的正确方法是什么?

来自分类Dev

正确的语法以避免bash“歧义重定向”消息

来自分类Dev

处理选择+插入以避免重复错误的正确方法

来自分类Dev

如何正确加载playerdata并避免获取旧数据

来自分类Dev

如何避免for循环并正确迭代pandas数据帧?

来自分类Dev

如何正确连接sql表避免数据重复?

来自分类Dev

如何正确避免通过php循环传递sql查询

来自分类Dev

正确地正确安装到系统解释器中,以避免出现段错误

来自分类Dev

HttpClient上的ObjectDisposedException

来自分类Dev

ObjectDisposedException:CancellationTokenSource已被处置

来自分类Dev

ObjectDisposedException:CancellationTokenSource已被处置

来自分类Dev

扩展 UserManager 导致 ObjectDisposedException

来自分类Dev

如何使用PDO正确分页大型查询以避免“内存不足”错误?

来自分类Dev

如何正确覆盖PHP CodeSniffer规则集中的规则/嗅探,并避免对代码进行再次检查?

来自分类Dev

如何避免出现此MySQL错误列名的列说明符不正确?

Related 相关文章

  1. 1

    使用LINQ(LINQ2SQL)避免ObjectDisposedException

  2. 2

    CreateLinkedTokenSource引发ObjectDisposedException。如何正确安全地配置CancellationTokenSource?

  3. 3

    避免正确执行null检查

  4. 4

    如何解决CA2202:避免生成System.ObjectDisposedException警告

  5. 5

    System.ObjectDisposedException。处理流编写器的正确方法是什么?

  6. 6

    如何正确避免SWT表扩大?

  7. 7

    正确地避免循环依赖-NestJS

  8. 8

    避免全局变量的正确方法

  9. 9

    使用调用避免线程错误的正确方法是什么?

  10. 10

    如何使用Proguard的GUI?避免混淆正确的类的问题

  11. 11

    避免在JavaScript中使用bind进行闭包是正确的吗?

  12. 12

    PHP:正确的过程可以避免超时问题

  13. 13

    快速的内存管理:以正确的方式创建视图并避免内存泄漏

  14. 14

    如何以正确的方式在Istio中重写并避免404错误?

  15. 15

    使用调用避免线程错误的正确方法是什么?

  16. 16

    正确的语法以避免bash“歧义重定向”消息

  17. 17

    处理选择+插入以避免重复错误的正确方法

  18. 18

    如何正确加载playerdata并避免获取旧数据

  19. 19

    如何避免for循环并正确迭代pandas数据帧?

  20. 20

    如何正确连接sql表避免数据重复?

  21. 21

    如何正确避免通过php循环传递sql查询

  22. 22

    正确地正确安装到系统解释器中,以避免出现段错误

  23. 23

    HttpClient上的ObjectDisposedException

  24. 24

    ObjectDisposedException:CancellationTokenSource已被处置

  25. 25

    ObjectDisposedException:CancellationTokenSource已被处置

  26. 26

    扩展 UserManager 导致 ObjectDisposedException

  27. 27

    如何使用PDO正确分页大型查询以避免“内存不足”错误?

  28. 28

    如何正确覆盖PHP CodeSniffer规则集中的规则/嗅探,并避免对代码进行再次检查?

  29. 29

    如何避免出现此MySQL错误列名的列说明符不正确?

热门标签

归档