图解观察托管程序线程
来源:互联网 发布:华师网络自助缴费网址 编辑:程序博客网 时间:2024/05/09 04:15
首先写如下一个控制台小程序;
namespace demo1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello,World!");
Console.ReadLine();
}
}
}
然后用任务管理器查看其线程数;
任务管理器处在别的选项卡时 查看 菜单下面是没有 选择列 菜单的;
切换到 进程 选项卡,才有 选择列 菜单;
点击 选择列 菜单;在弹出的对话框中选中 线程数;确定;
然后可以看demo1的线程数;张银奎老师著《软件调试》言此时线程数是3,我的为什么是4呢;
谁知道过了一阵,demo1的线程数目又自己变成了7;事实总是让人崩溃的;这是咋回儿事呢;
VS默认是托管调试;如果选中项目属性的 启用非托管代码调试 ;则可进行混合调试;
还是使用托管调试;从VS启动demo1,程序停在Console.ReadLine()时,准备用windbg附加到进程;然后观察线程;
启动windbg,进程列表只有demo1.vshost.exe;没有demo1.exe;
选中 demo1.vshost.exe ,附加;谁知弹出如下对话框;这活老复杂了,下次再搞;
下面用ProcessExplorer来观察线程;
从vs启动调试demo1.exe,进程列表只有demo1.vshost.exe;
看一下他的线程情况;
再单独启动demo1.exe看一下情况;
clr.dll是 .net 的运行环境;
托管程序有三个线程:
与内存回收密切相关的终结器线程;支持调试的辅助调试线程;然后就是程序自己的初始线程;
- 图解观察托管程序线程
- 程序托管
- 托管线程池
- 托管线程池
- 托管线程状态
- linux中程序的观察
- JConsole观察分析Java程序
- 程序猿种群观察手记
- 托管代码与非托管代码之间与托管程序
- 托管代码与非托管代码之间与托管程序
- vb.net托管线程池
- 使用观察者模式观察线程的生命周期
- 进程与线程 图解
- java线程生命周期图解
- 线程生命周期图解
- 线程生命周期图解
- 多线程-线程生命周期图解
- java线程状态图解
- TCP/IP 教程
- python归并排序
- java并发编程
- uclinux很久前笔记3
- JavaScript中创建对象的方法:工厂模式,构造函数模式, 原型模式
- 图解观察托管程序线程
- HDU3068-最长回文(Manacher算法)
- int string 的相互转换
- 内容提供者 Content Provider - 创建
- 玩转 H5 下拉上滑动效
- 渲染世界的OPENGL<9>GLSL编程-单位着色器
- Java那些掌握的基础
- div里ul li浮动之后父容器高度不能自动增加的解决方法
- Manacher's ALGORITHM: O(n)时间求字符串的最长回文子串