这些线程你可以理解为 .net 库与windows桌面交互的一些基本线程。 说两个我知道的: gc,对就是垃圾回收,是由一个程序自己创建线程回收自己的垃圾的,你如果关闭整个程序的资源就会都变成系统垃圾,随时清理。 event实现,是的,事件的实现最后还是用到了一个甚至多个线程来控制,当然这对于使用.net的程序员来说,是你不用考虑的了。 剩下的部分我就没有能马上想到的了,对没错你开一个单线程的窗体程序也会启动很多线程。 至于这些线程的内部机制,那就更不是一两句话能解释清楚的了。
[quote=引用 1 楼 xomix 的回复:] 这些线程你可以理解为 .net 库与windows桌面交互的一些基本线程。 说两个我知道的: gc,对就是垃圾回收,是由一个程序自己创建线程回收自己的垃圾的,你如果关闭整个程序的资源就会都变成系统垃圾,随时清理。 event实现,是的,事件的实现最后还是用到了一个甚至多个线程来控制,当然这对于使用.net的程序员来说,是你不用考虑的了。 剩下的部分我就没有能马上想到的了,对没错你开一个单线程的窗体程序也会启动很多线程。 至于这些线程的内部机制,那就更不是一两句话能解释清楚的了。
往深了说,属于计算机系统结构的问题 一般讲,举例就是: 用VS建好一个项目,其实很多共用的功能都帮你实现了,替你写了很多很多代码了; 不知道lz有没有接触过用C++写一个窗口,那要调用很多api的,写好多代码的,但是自从有了类似MFC的类库后,建立一个窗口就容易多了,原因是开发环境自动补充了那些代码,程序员只需要写部分即可 打比方盖房子,一般的房子都有柱子、大梁、窗户门的预留口子等,这些共有的东西,基建部门都为你建好了,你只需要做做里工,根据用户特别需要做做个性化装修就行了,柱子、大梁这些虽然你没建,但基建部门为你建了,它也是存在的,能看到的 第二个问题,我觉得,pool的概念,是相对于程序员的,pool的max设置为5(假设正好满负荷运行),只是程序员控制下的5个线程,不是对整个程序的,整个程序要想正常运行,绝不是仅有这5个线程在运行,原因在上面说了,程序员只做了部分工作
比如说图形界面一上来就渲染一番,交互界面有一大堆异步事件要处理,用完线程和内存资源了也不释放,而是留着。这才是常态!
110,537
社区成员
642,576
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧