C# 运行机制

技道两进 2016-04-15 11:02:34
刚接触到线程的东西,然后打开任务管理器,检测各个进程的线程都有多少,然后发现个问题:

1.使用C#编写一个winform程序,什么都没有,只生成一个窗口。然后点击exe,运行,检测它的进程,发现这一个进程下竟然有好几个线程。
2.然后,又写了一个c程序,很简单,在黑窗口输出一句话。运行exe,监测进程,发现只有一个线程。

这是为什么呢?是不是和C#的机制有关系?

还有一个概念叫公共语言运行库(CLR),不是太理解。看.net的编译过程都是通过它来完成的,是不是和它有关系,它给编译成了多线程,什么机制?

这些不懂哇,求指导,或者什么帖子来普及一下知识啊!
...全文
199 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
技道两进 2016-04-18
  • 打赏
  • 举报
回复
恩,应该是CLR对程序进行管理所需要的一些线程
秋的红果实 2016-04-15
  • 打赏
  • 举报
回复
C#属于.NET平台的语言,最终执行要靠CLR,这个就像java里的jre类似,简单讲就是要转为CLR能执行的代码去运行。 CLR也叫虚拟机。按照计算机系统结构原理,……,汇编语言代码,需要转为“机器语言代码”才能直接在硬件上运行,你可以将CLR看作(因为只是看作,于是叫虚拟机)是计算机硬件;你自己写的程序代码,经过编译后的代码,就像“机器语言代码” 你的程序,要想工作,需要想让CLR运行起来,进程当然不是一个了 .NET语言还叫中间语言,其实就是把编程变简单,越高级的语言,越容易使用,高级语言交给低一层语言处理,例如网络7层协议中,网络层为数据链路层提供代码,数据链路层再给物理层提供代码,实现物理上的传输。 再比如js和jq,虽然没有看过MSND文档,感觉上,jq是js的封装,我们用jq的时候,提取整块js代码出来用,提高了工作效率 个人看法,有时间继续聊
秋的红果实 2016-04-15
  • 打赏
  • 举报
回复
更正:你的程序,要想工作,首先需要让CLR运行起来,进程当然不是一个了

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧