一个超经典 WinForm 卡死的最后一次反思
💡
原文中文,约5500字,阅读约需14分钟。
📝
内容提要
本文介绍了使用Perfview的墙钟模式来寻找非主线程创建的控件,并通过案例和Thread Time功能找到了目标类的调用栈。同时提供了让窗体尽早卡死的脚本。最后总结了对于非主线程创建控件的问题的思考。
🎯
关键要点
- 本文介绍了使用Perfview的墙钟模式来寻找非主线程创建的控件。
- 通过案例和Thread Time功能找到了目标类的调用栈。
- Perfview可以记录Thread的活动轨迹,帮助定位问题。
- 使用背景工作线程创建控件会导致MarshalingControl的实例化。
- 可以通过Perfview的命令行工具收集数据并分析调用栈。
- 总结了如何让窗体尽早卡死以便于调试。
- 提供了一个脚本示例来帮助实现窗体卡死的效果。
- 对非主线程创建控件的问题进行了深入思考,期望后续不再重复此主题。
➡️