1.进程可以承载一组相关的.net程序集,应用程序域(AppDomain)是对该进程的逻辑细分,一个应用程序域进一步被细分为多个上下文边界;使用上下文的概念,CLR能够确保恰当的控制那些带特殊运行时要求的对象。
2.每一个windows进程都恰好包含一个用作程序入口点(entry point)的主线程,线程是进程中的基本的执行单元,进程的入口点创建的第一个线程被成为主线程。主线程可以次线程,无论是主次线程,每一个线程都是进程中的一个独立执行单元,他们能够同时访问那些共享数据。在基于时间片轮转的调度中,当一个线程的时间片用完的时候,他会被挂起,以便执行其他线程。对于线程来说需要知道挂起前的状态,以便恢复,这些数据将写入TLS(线程本地存储)中,并且他们还要获得一个独立的调用栈。
3..net进程交互
System.Diagnostics命名空间定义的许多类型与进程相关。
public Dictionary<int, string> Func5() //获取当前运行的进程,并返回进程的相关信息。
{
var runningProcess = from proc in Process.GetProcesses(".")
orderby proc.Id select proc;
Dictionary<int, string> dicRunningProcess = new Dictionary<int, string>();
foreach (var item in runningProcess)
{
string info = string.Format("PID:{0}--Name:{1}",item.Id,item.ProcessName);
dicRunningProcess[item.Id] = info;
}
return dicRunningProcess;
}
ProcessThread类型并不用来创建、挂起、或停止线程,而只是用来获取线程诊断信息。Process.Start()、Process.Kill()用来启动和结束进程。
4.....