zoukankan      html  css  js  c++  java
  • C#中线程的基本应用

    一、定义名称空间

    在.NET中,多线程功能是在System.Threading名称空间中定义的。

    因此,在使用任何线程类之前,必须定义 System.Threading名称空间。定义方法如下:

    using System.Threading

    二、启动线程

    System.threading名称空间中的Thread类代表一个线程对象,用这个类对象可以[创建]新的线程,也可以[删除]、[暂停]和[恢复]线程。

    例:下面的代码使用Thread类创建一个新的线程,然后启动这个线程:

    thread = new Thread(new ThreadStart( runFun )); 
    thread.Start();

    其中runFun是这个线程要执行的一个函数,代码如下:

    protected void runFun() 

      string str ; 
      for ( int i = 0; i<=10000; i++ ) 
      { 

        str = "第二线程" + i.ToString(); 
        Console.WriteLine(listView1.ListItems.Count, str, 0, new string[]{""} ); 
        Update(); 
      } 
    }

    三、杀死线程

    Thread类的Abort方法用于永久地杀死一个线程。但是请注意,在调用Abort方法前一定要判断线程是否还激活,也就是判断thread.IsAlive的值:

    if ( thread.IsAlive ) 

      thread.Abort(); 
    }

    四、暂停线程

    Thread.Sleep方法用于将一个线程暂停一段时间,代码如下:

    thread.Sleep();

    五、设置线程的优先权

    我们可以使用Thread类的ThreadPriority属性设置线程的优先权线程优先权的取值范围是Normal、AboveNormal、BelowNormal、Highest或者Lowest.

    设置代码:

    thread.Priority = ThreadPriority.Highest;

    六、延迟线程

    Thread类的Suspend方法可以延迟一个线程。线程被延迟到调用Resume方法为止。

    if (thread.ThreadState = ThreadState.Running ) 

      thread.Suspend(); 
    }

    七、恢复被延迟的线程

    调用Resume方法可以恢复一个被延迟的线程。如果线程没有被延迟,Resume方法就是无效的。

    if (thread.ThreadState = ThreadState.Suspended ) 

      thread.Resume(); 
    }

  • 相关阅读:
    分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装
    redis整合spring(redisTemplate工具类)
    架构之路之spring+redis的集成
    java之redis篇(spring-data-redis整合)
    Redis 安装
    java对redis的基本操作
    mybatis 详解(九)------ 一级缓存、二级缓存
    mybatis 详解(八)------ 懒加载
    mybatis 详解(七)------一对一、一对多、多对多
    mybatis 详解(六)------通过mapper接口加载映射文件
  • 原文地址:https://www.cnblogs.com/xiangers/p/1861502.html
Copyright © 2011-2022 走看看