【问题标题】:How to name the TWebBrowser threads如何命名 TWebBrowser 线程
【发布时间】:2011-11-22 05:04:17
【问题描述】:

一旦您在 TWebBrowser 上调用 Navigate 或 Navigate2,它就会创建至少 2 个新线程,这些线程在您销毁浏览器之前不会被释放。

获取由 TWebBrowser 实例生成的线程的线程 ID 以便使用 TThread.NameThreadForDebugging 命名它们的最佳方法是什么(如果有)?

【问题讨论】:

  • 因为这个代码根本不是delphi代码(它是windows/internet explorer IShellDocView代码),你能做的最好的就是定期扫描并命名这些意想不到的线程“AppearedAfterNavigate##”,其中##是唯一的您自己分配的编号值。不过,我从来没有成功过。

标签: multithreading delphi delphi-xe twebbrowser


【解决方案1】:

无法直接访问线程。但是您可以使用CreateToolhelp32Snapshot()Thread32First()Thread32Next() 枚举调用进程的运行线程,跟踪您检测到的任何新线程。另一种选择是将你的线程命名逻辑移动到一个 DLL 中,这样你就可以通过 Delphi 的DllProc/Ex() 回调来利用它的DLL_THREAD_ATTACH 通知。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-10
  • 1970-01-01
  • 2010-10-21
  • 1970-01-01
  • 2011-12-02
相关资源
最近更新 更多