进程与线程

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类型。

转载于:https://www.cnblogs.com/iceberg2008/p/4198289.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值