C#入门学习——进程和线程

进程

我们可以通过代码来打开一些应用程序或文件,这时候就用到了进程Process类

通过进程打开一些应用程序

Process.Start("calc");
Process.Start("mspaint");
Process.Start("notepad");
Process.Start("iexplore", "http://www.baidu.com");

通过一个进程打开制定的文件

首先我们需要创建进程对象

Process p = new Process();

然后将要执行的文件传给p

ProcessStartInfo psi = new ProcessStartInfo(@"C:\Users\Flame Master\Desktop\学习记录.txt");
p.StartInfo = psi;
p.StartInfo.UseShellExecute = true;
p.Start();
Console.ReadKey();

线程

为什么要使用线程?

        private void Test()
        {
            for (int i = 0; i < 10000000; i++)
            {
                textBox1.Text = i.ToString();
            }
        }

假如我们让程序执行这个方法,那么主线程会一直执行这个循环,使得我们的窗体陷入假死(动不了)。

在写程序的时候,我们肯定不希望这种事经常发生,所以我们使用线程,让一个新的线程去执行这个方法,主线程就不会进入假死了。

产生线程的四个步骤

1.编写产生线程所要执行的方法(如果线程执行的方法需要参数,那么要求这个参数必须是object类型。在线程名.Start();里面传参数)

2.引用System.Threading命名空间

3.实例化Thread类。并传入一个指向线程所要运行方法的委托(这个时候线程已经产生但是还没有运行)

4.调用Thread实例和Start方法,标记该线程可以被cpu执行了,但具体执行时间由cpu决定

前台线程和后台线程

前台线程:只有所有的前台线程都关闭才能完成程序关闭
后台线程:只要所有的前台线程结束,后台线程自动结束

//创建一个线程去执行这个方法
Thread th = new Thread(Test);
//将线程设置为后台线程
th.IsBackground = true;
th.Start();

 .net下是不允许跨线程访问的,所以,我们在窗体加载的时候,取消跨线程的访问。

        private void Form1_Load(object sender, EventArgs e)
        {
            //取消跨线程的访问
            Control.CheckForIllegalCrossThreadCalls = false;
        }

让线程暂停一段时间,参数给毫秒:Thread.Sleep();
结束这个线程:th.Abort();(执行这个方法,就不能再用Start了)

 线程的作用

1.让计算机"同时"做多件事情,节约时间。
2.多线程可以让一个程序“同时”处理多个事情。
3.后台运行程序,提高程序的运行效率,也不会使主界面出现无响应的情况。
4.获得当前线程和当前进程

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值