7、进程
我们可以把计算机中每个运行的应用程序都当做是一个进程。
而一个进程又是由多个线程组成的。
//获得当前程序中所有正在运行的进程
Process[] pros=Process.GetProcesses();
foreach(var item in pros)
{
//item.Kill();
Console.WriteLine(item);
}
//通过进程打开一些应用程序
Process.Start("calc");
Process.Start("mspaint");
Process.Start("notepad");
Process.Start("iexplore","http://www.baidu.com");
//通过一个进程打开指定的文件
//第一:创建进程对象
ProcessStartInfo psi=new ProcessStartInfo(@"c:\Users\SpringRain\Desktop\1.txt");
Process p=new Process();
p.StartInfo= psi;
p.Start();
8、单线程遇到的问题
//创建一个线程去执行这个方法
Thread th=new Thread(Test);
//标记这个线程准备就绪了,可以随时被执行。具体什么时候执行这个线程由CPU决定。
//将线程设置为后台线程
th.IsBackground=true;
th.Start();
前台线程和后台线程
前台线程:只有所有的前台线程都关闭了能完成程序关闭。
后台线程:只要所有的前台线程结束,后台线程自动结束。
9、在.net下,是不允许跨线程的访问的。
//取消跨线程的访问
Control.CheckForIllegalCrossThreadCalls=false;
private void Form1_FormClosing(object sender,FormColsingEventArgs e)
{
//当你点击关闭窗体的时候,判断新线程是否为Null
if(th!=null)
{
//结束这个线程
th.Abort();
}
}
如果线程执行的方法需要参数,那么要求这个参数必须是object类型。