zoukankan      html  css  js  c++  java
  • c#多线程学习笔记一

    线程会消耗大量的操作系统资源,多个线程共享一个物理处理器将导致操作系统忙于管理这些线程,而无法运行程序。
    1:暂停线程

    使用Thread.Sleep()使线程进入休眠状态,它会占用尽可能少的cpu,而不浪费系统资源。

    2:线程等待

    Thread.Sleep()需要指定具体的休眠时间,当一个线程需要等待另一个线程执行完成再进行某些操作时,就需要用到Thread.Join()方法。该方法可以实现在两个线程间同步执行,第一个线程会等待另一个线程完成后再继续执行,第一个线程等待时是处于阻塞状态。

    示例代码:static void Main()

         {

          Thread t=new Thread(PrintNumber);

          t.Start();

          t.Join();

          WriteLine("线程t执行结束,主线程执行。")

         }

    3:终止线程

    Thread.Abort()方法可以终止该线程,需要注意的是,使用Abort终止线程时,有可能对程序造成异常从而彻底摧毁应用程序,另外,Abort并不一定总能终止线程,目标线程可以通过处理异常并调用Thread.ResetAbort()方法来拒绝被终止。此时可以优先考虑CancellationToken方法来取消线程的执行。

    4:前台线程和后台线程

    可以通过Thread对象的IsBackgroud属性来设置线程为前台线程还是后台线程,Thread对象通常默认为前台线程。前台线程和后台线程的主要区别:进程会等待所有的前台线程完成后再结束工作,但是如果只剩下后台线程,则会直接结束工作。如果程序定义了一个不会完成的前台线程,主程序并不会正常结束。

  • 相关阅读:
    SD_WebImage-03-多线程+下载任务放入非主线程执行
    NSOperationQueue_管理NSOperation-02-多线程
    CALayer小结-基本使用00-UI进阶
    XMPP-UI进阶-01
    XMPP总结-UI进阶-00
    UI控件总结-UI初级
    转场动画-01-day4
    暂停-开始动画-核心动画-08-day4
    核心动画-04-CALayer隐式动画
    Android开发技术周报 Issue#71
  • 原文地址:https://www.cnblogs.com/zynNote/p/10524324.html
Copyright © 2011-2022 走看看