首页 > 代码库 > 线程在C#中的使用

线程在C#中的使用

  概念:
    进程是操作系统对一个正在运行的程序的一种抽象(处理器,主存,I/O设备),进程是并发的
    线程是指进程中的一个执行流程,一个进程中可以运行多个线程。线程是并行的
  线程的特性:
    1.线程的执行顺序由操作系统来决定
    2.状态:
      1.Unstarted 就是Thread实例化了,但是又没有调用Start()
      2.Running 调用了Start()后就是Running状态
      3.WaitSleepJoin 调用Seeep()或其他
      4.Stopped 停止
      5.AbortRequested
      6.Aborted
  常用的同步方法
    1.lock
    2.Monitor
      object loc = new object();
      Monitor.Enter(loc);
      try
      {

      }
      finally
      {
      Monitor.Exit(loc);
      }
    3.Mutex
  任务的取消
    1.创建CancellationTokenSource对象
    2.得到上面对象的Token对象
    3.调用上面对象的ThrowIfCancellactionRequested();记得要捕获
    4.调用Token.Cancel();

  Parallel:此类可以让你以并行的模式来遍历一个集合
    常用方法
      1.For
      2.ForEach
      3.Invoke
  PLinq编程

  使用:
      var data = http://www.mamicode.com/Enumerable.Range(0, 100000000);
      var result = (from b in data.AsParallel() where b % 2 == 0 select b).Count();
      Console.WriteLine(result);
  如果要取消呢?
    和上面的一样,调用Token.Cancel()即可

线程在C#中的使用