C#多线程(一)

博客介绍了计算机中进程和线程的概念。进程是程序运行时使用的全部计算资源,线程是程序执行的最小单位,进程执行操作由线程完成。进程包含线程,二者是1VN关系。还提到了多线程,即一个进程中有多个执行流并发执行,并表示会给出简单demo。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线程关键字 Thread
/// 计算机概念
进程:一个程序在服务器上运行时,使用的全部计算资源,起名叫进程
线程:线程是程序执行的最小单位,进程在执行任何一个操作或者响应,都是由线程完成的,
执行过程中,使用到全部计算资源的合集,就叫线程
进程包含线程,线程一定属于进程,进程和线程之间1VN
多线程:计算机里面,一个进程里面有多个执行流并发执行

.Net平台,System.Threading
Thread是.Net封装的一个类,用来对应计算机里面的线程
Thread.CurrentThread.ManagedThreadId当前线程的Id--id是.NET平台起名的

下面写个简单的demo感受一下!
在这里插入图片描述

       Thread thread;  //声明线程

        private void button1_Click(object sender, EventArgs e)
        {  
            thread = new Thread(new ThreadStart(Run));  //线程调用的方法
            thread.Start(); 
        }

        void Run()
        {
            for (int i = 0; i < 1000; i++)
            {
                Thread.Sleep(500);  //休眠0.5秒

                if (this.InvokeRequired)  //如果是当前创建的线程
                {
                    //实例化委托
                    delegate_UpdateLable delegate_UpdateLable = new delegate_UpdateLable(UpdateShow);
                  
                    this.BeginInvoke(delegate_UpdateLable, i.ToString());  //当前创建的线程异步调用委托

                    //this.Invoke(delegate_UpdateLable, i.ToString()); //当前创建的线程调用委托
                    
                   // this.Invoke(new Action(delegate ()
                   // {
                      //  label1.Text = i.ToString();
                    })); 
					//以上处理方法都不会阻塞线程!,更多是时候都会用到的是线程异步
                }
                else
                {
                    label1.Text = i.ToString();
                } 

            }

        }

        delegate void delegate_UpdateLable(string str);
        void UpdateShow(string strtext)
        {
            label1.Text = strtext;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            thread.Abort(); //终止线程
        }

        private void button3_Click(object sender, EventArgs e)
        {
            thread.Suspend();  //挂起
        }

        private void button4_Click(object sender, EventArgs e)
        {
            thread.Resume(); //恢复
        }

以上是比较的老的写法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值