C#_多线程的使用(一)

一.本次主要对以下3点进行输出
1.线程的创建
2.前台线程与后台线程
3.线程的优先级
二.准备工作
1.using System.Threading;//引用线程类
2.创建winform窗体及控件
在这里插入图片描述 窗体布局
三.程序说明

Thread drawthread = null;//定义线程1,并设置其初始为空线程
Thread nihao = null;//定义线程2,并设置其初始为空线程

在启动线程控件槽函数下创建

    drawthread = new Thread(new ThreadStart(draw));//设定要执行线程的方法
drawthread.IsBackground = true;//设定为后台线程
drawthread.Start();//线程1开始

drawthread.Priority = ThreadPriority.AboveNormal;//设定线程1的优先级搞于线程2
nihao = new Thread(new ThreadStart(shagua));//设定要执行线程的方法
nihao.IsBackground = false;//设定为前台线程,可以不写,默认为前台线程
nihao.Priority = ThreadPriority.BelowNormal;//设定线程1的优先级搞于线程2
drawthread.Start();//线程2开始

两个线程对应的方法

private void shagua()
{
    for (int k = 0; k <= 10; k++)
        {
            zhizhang(k);
           // Thread.Sleep(100);
        }      
   }
 private void draw()
{
      try
        {
            for (int i = 0; i <= 1000; i++)
         	   {
               	 test(i);
             	 //  Thread.Sleep(1000);
              }
       catch(System.Exception e1)
        	 {
            return;
              }               
 }

向textbox中添加字符串的方法

 private void test(int i)
    {
      //  if (textBox1.InvokeRequired)
       // {
         //   drawDelegate d = new drawDelegate(test);
         //   Invoke(d, new object[] { i });
      //  }
      //  else
      //  {
            textBox1.AppendText(i.ToString());//.AppendText(i.ToString() "\r\n");
      //  }
    }
    private void zhizhang(int k)
    {
        textBox1.AppendText(k.ToString());
    }

总结:
1.后台线程当前台线程终止了,即使没运行完也会终止;前台线程会一直执行,直到线程终止

2.分优先级时并不是先执行完高优先级的在执行低优先级线程,而是穿插执行,在空闲时也会执行低优先级线程在继续执行高优先级的

3.使用多线程的优点及缺点
优点:会将一个进程分成若干线程,可以分优先级,并发执行,更快;如通信和播放视频两功能穿插执行
利于程序稳定性、模块化
缺点:占用更多系统内存

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值