Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 如何命名TWebBrowser线程_Multithreading_Delphi_Delphi Xe_Twebbrowser - Fatal编程技术网

Multithreading 如何命名TWebBrowser线程

Multithreading 如何命名TWebBrowser线程,multithreading,delphi,delphi-xe,twebbrowser,Multithreading,Delphi,Delphi Xe,Twebbrowser,在TWebBrowser上调用Navigate或Navigate2后,它会创建至少2个新线程,这些线程在您销毁浏览器之前不会被释放 获取TWebBrowser实例生成的线程的线程ID的最佳方法(如果有的话)是什么,以便使用TThread.NameThreadForDebugging命名它们?无法直接访问线程。但是您可以使用CreateToolhelp32Snapshot()、Thread32First()和Thread32Next()枚举调用进程的运行线程,跟踪您检测到的任何新线程。另一种选择是

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


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

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

因为此代码根本不是Delphi代码(它是windows/internet explorer IShellDocView代码)最好是定期扫描这些意外线程并将其命名为“AppearedTernavigate###”,其中##是您为自己指定的唯一编号值。不过,我从来没有成功地做过这么多。所有的建议都很好。Mine类助手实现可在