如何使qwebview发布线程
How do I get QWebView to release threads?
我正在创建许多创建qthreads的qwebviews。问题在于我用尽了堆栈空间来创建更多线程。因此,我想知道是否有一种清理现有线程的方法。需要明确的是,我不是创建这些线程的人:QT在我显示Qwebview时会创建线程。
大多数线程(约400/500)具有完全相同的堆栈:
0 ntdll!rtlenablelylylysectionsectigeventCreation c: Windows system32 ntdll.dll 0 0x770b013d1 kernel32!getVolumePathNamesforvolumenamea c: Windows syswow64 kernel32.dll 0 0x766d1a2c2用户32!MessageBoxa C: Windows syswow64 user32.dll 0 0x74CD086A3 QEVENTDISPATCHERWIN32 :: processEvents qeventdispatcher_win.cpp 831 0x69de39484 Qeventloop :: ProcessEvents Qeventloop.cpp 149 0x69dbf0c55 QEVENTLOOP :: EXEC QEVENTLOOP.CPP 204 0x69DBF2236 Qthread :: exec qthread.cpp 501 0x69cd412b7 QTHREAD :: RUN QTHREAD.CPP 568 0x69CD42838 Qthreadprivate :: start qthread_win.cpp 346 0x69cd54d19 msvcrt!_itow_s c: Windows syswow64 msvcrt.dll 0 0x7540128710 msvcrt!_endthreadex C: Windows syswow64 msvcrt.dll 0 0x7540132811 kernel32!basecleanupappcompatcachesupport c: windows syswow64 kernel32.dll 0 0x766d339a12 ntdll!rtlpntsetValueKey C: Windows System32 ntdll.dll 0 0x770C9EF2213 ntdll!rtlpntsetValueKey C: Windows System32 ntdll.dll 0 0x770C9EC514 ??0
有什么方法可以清理它们?
由于我意识到该线程是为NetworkManager分配的,因此我创建了一个全局网络管理器实例,并将其设置为每个qwebview的NetworkAccessManager。这使其可以重复使用所有页面的同一组线程,因此不会留下许多线程。
相关文章:
- 从不同线程使用int64的不同字节安全吗
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 在C++中使用cURL和多线程
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 在cuda线程之间共享大量常量数据
- 如何将元素添加到数组的线程安全函数?
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 异常属于C++中的线程还是进程
- C++中的线程安全删除
- C++使用params创建线程函数会导致转换错误
- C++中的多线程:连接线程的正确方法
- C 线块主线程
- 如何使qwebview发布线程
- 矢量扩展和线程例程
- 如何在不使用全局变量的情况下通知外部线程主线程状态
- WM_QUIT只发布线程而不是窗口
- 传递线程例程多个变量和堆栈大小
- c++标准是否考虑支持协程/协程