使用AutomationElement类时可能发生内存泄漏

亚历山大·苏希塔什维利(Alexander Sukhitashvili)

我正在编写一个程序,将我的浏览历史记录在一个文本文件中。它从Chrome窗口中获取网址并将其写入文本文件。它获取chrome窗口句柄作为参数,并将url输入out参数。代码如下:

static AutomationElement elm;// = AutomationElement.FromHandle(handle);
static AutomationElement elmUrlBar;  
public static void GetChromeUrl(IntPtr handle, out string url)
    {
        string namedProperty = "Address and search bar" ;
        url = null;
        elm = AutomationElement.FromHandle(handle);
        elmUrlBar = elm.FindFirst(TreeScope.Descendants,
          new PropertyCondition(AutomationElement.NameProperty, namedProperty));
        if (elmUrlBar != null)
        {
            AutomationPattern[] patterns = elmUrlBar.GetSupportedPatterns();
            if (patterns.Length > 0)
            {
                ValuePattern val = (ValuePattern)elmUrlBar.GetCurrentPattern(patterns[0]);
                url = val.Current.Value;
            }
        }
    }

我每隔5秒钟使用计时器回调调用此方法,它将从chrome浏览器窗口返回正确的url。因此,尽管看起来并不能释放AutomationElement对象占用的内存,并且此应用程序使用的RAM一直在增长,但它确实能很好地工作。我使用dotMemory 4.0和ant内存探查器8对它进行了剖析,它显示了automationElement对象已创建,但从未被垃圾收集器删除。有人知道如何解决此问题吗?

马克斯·杨

我目前工作的公司也遇到了这个问题。

本文对此问题做了解答UIAutomation内存问题

从根本上讲,您无需从要执行自动化的应用程序中调用GC,因为如果此时没有指向它们的指针,自动化元素将被添加到大对象堆中,并且需要3分钟的时间才能被处理掉。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C ++中实现A *时可能发生内存泄漏

来自分类Dev

在C ++中实现A *时可能发生内存泄漏

来自分类Dev

使用mplfinance / matplotlib时可能发生内存泄漏。怎么解决呢?

来自分类Dev

通过FinalizerReference可能发生的内存泄漏

来自分类Dev

MediaElement在新媒体加载时是否可能发生内存泄漏?

来自分类Dev

会话超时0:可能发生内存泄漏?

来自分类Dev

Java中是否可能发生内存泄漏?

来自分类Dev

我的C ++文件中是否可能发生内存泄漏?

来自分类Dev

会话超时0:可能发生内存泄漏?

来自分类Dev

使用指针算法进行迭代,是否可能发生内存泄漏?

来自分类Dev

重用PreparedStatement时可能发生资源泄漏?

来自分类Dev

iOS + Delphi:内存不足警告-TTexture可能发生内存泄漏?

来自分类Dev

扩展类时发生内存泄漏

来自分类Dev

R:删除ggplot2对象不会释放空间?可能发生内存泄漏?

来自分类Dev

PM2-不正确的内存使用情况读取以及Node.js应用程序可能发生的内存泄漏

来自分类Dev

使用NodeJS时发生内存泄漏

来自分类Dev

使用实体框架时发生内存泄漏

来自分类Dev

使用MBProgressHUD时发生内存泄漏

来自分类Dev

循环使用NSReadPixel时发生内存泄漏

来自分类Dev

使用DnsGetCacheDataTable时发生内存泄漏

来自分类Dev

注入类而不是实例时发生内存泄漏?

来自分类Dev

Delphi:在类内创建TStringList时发生内存泄漏

来自分类Dev

在IOS中使用Web服务时,发生NSURLSession内存泄漏

来自分类Dev

在Node.js中使用流时发生内存泄漏?

来自分类Dev

在glib中使用垃圾回收时发生内存泄漏

来自分类Dev

使用Delphi的引用计数功能时发生内存泄漏

来自分类Dev

在Windows上使用包XML时发生内存泄漏

来自分类Dev

在Windows上使用包XML时发生内存泄漏

来自分类Dev

使用智能指针时发生内存泄漏

Related 相关文章

  1. 1

    在C ++中实现A *时可能发生内存泄漏

  2. 2

    在C ++中实现A *时可能发生内存泄漏

  3. 3

    使用mplfinance / matplotlib时可能发生内存泄漏。怎么解决呢?

  4. 4

    通过FinalizerReference可能发生的内存泄漏

  5. 5

    MediaElement在新媒体加载时是否可能发生内存泄漏?

  6. 6

    会话超时0:可能发生内存泄漏?

  7. 7

    Java中是否可能发生内存泄漏?

  8. 8

    我的C ++文件中是否可能发生内存泄漏?

  9. 9

    会话超时0:可能发生内存泄漏?

  10. 10

    使用指针算法进行迭代,是否可能发生内存泄漏?

  11. 11

    重用PreparedStatement时可能发生资源泄漏?

  12. 12

    iOS + Delphi:内存不足警告-TTexture可能发生内存泄漏?

  13. 13

    扩展类时发生内存泄漏

  14. 14

    R:删除ggplot2对象不会释放空间?可能发生内存泄漏?

  15. 15

    PM2-不正确的内存使用情况读取以及Node.js应用程序可能发生的内存泄漏

  16. 16

    使用NodeJS时发生内存泄漏

  17. 17

    使用实体框架时发生内存泄漏

  18. 18

    使用MBProgressHUD时发生内存泄漏

  19. 19

    循环使用NSReadPixel时发生内存泄漏

  20. 20

    使用DnsGetCacheDataTable时发生内存泄漏

  21. 21

    注入类而不是实例时发生内存泄漏?

  22. 22

    Delphi:在类内创建TStringList时发生内存泄漏

  23. 23

    在IOS中使用Web服务时,发生NSURLSession内存泄漏

  24. 24

    在Node.js中使用流时发生内存泄漏?

  25. 25

    在glib中使用垃圾回收时发生内存泄漏

  26. 26

    使用Delphi的引用计数功能时发生内存泄漏

  27. 27

    在Windows上使用包XML时发生内存泄漏

  28. 28

    在Windows上使用包XML时发生内存泄漏

  29. 29

    使用智能指针时发生内存泄漏

热门标签

归档