【问题标题】:Why does disposing a JDialog box twice in a row result in this kind of effect为什么连续两次配置一个JDialog框会出现这种效果
【发布时间】:2011-10-17 23:09:12
【问题描述】:

经过近五周的努力,我今天解决了一个错误。发生的情况是,在我连续两次处理 JDialog 框后,客户端计算机上的 CPU 出现峰值(从 50% 到 100%)。

我实际上在对象中处理了它,然后在创建对象的方法中处理了它,这是一个愚蠢的错误。我花了一段时间才找到它,因为我会在进程资源管理器中看到许多与 MSVCR71.dll 关联的 CSWITCH Delta,而不是导致空指针异常。

使用分析器让我找到了正确的解决方案。
我的问题:

  1. 为什么我没有收到空指针异常?

  2. 高 CPU 和 CSWITCH Delta 之间有什么联系?

  3. 为什么尝试处理对话框两次会导致这种情况?

谢谢,

艾略特

【问题讨论】:

    标签: java performance debugging swing dll


    【解决方案1】:

    作为JDialog 的父级的重量级对等点Window 由主机操作系统管理。

    1. 没有空指针异常,因为这是在 Java 中,而不是在主机操作系统中。

    2. 连接位于dispose(),它通过JNI与主机操作系统通信。

    3. 我怀疑但无法证明受影响的.dll 是罪魁祸首。

    【讨论】:

      猜你喜欢
      • 2022-12-16
      • 2016-09-24
      • 2017-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-31
      • 2023-04-11
      • 1970-01-01
      相关资源
      最近更新 更多