操作線程

如果一個線程中某一個操作需要執行很長時間,而且很少需要用戶干預,則最好把這個任務作為進程的一個線程來運行,因為這樣可以為應用程序提供最好的響應性能,也能提高用戶的工作效率

   名字空間System.Threading中提供了多線程程序設計需要的功能,包括線程的創建,啟動,停止以及多線程同步等,下面將先介紹Thread類以及如何使用它控制線程,接著介紹多線程同步技術

  1. Thread

這個類以對象的方式封裝了特定AppDomain中給定的程序執行路徑,其中提供的方法可以用來從當前的線程創建新線程,掛起線程,停止和銷毀線程,下面是這個 類中核心的靜態成員:

  CurrentThead---只讀屬性,指向當前運行的線程

  AllocateNamedDataSlot,FreeNameDataSlot,GetNameDataSlot—用來操縱給定線程的線程局部存取(TLS

  Sleep—讓當前線程休眠特定的時間

  GetDomain—返回當前線程所在的AppDomain;

  GetDomainID—返回當前線程所在AppDomainID

些外,這個類還有以下實例成員:

  IsAlive—判斷線程是否處於活動狀態

  Name—線程的名稱

  Priority—ThreadPriority枚舉類型,代表線程的優先級

  ThreadState—ThreadState枚舉類型,代表線程的狀態

  Start—啟動一個線程

  Suspend—掛起一個線程

  Resume—繼續掛起線程

  Abort—結束一個線程的運行

  Join—讓線程等待另外一個線程過期

  Interrupt—打斷一個處於WaitSleepJoin狀態的線程

1.1.1線程的創建

創建線程是創建一個Thread類型的對象,Thread類的構造方法帶有一個TheadStart類型的參數,這是代表類型,相當於函數的指針,用於傳遞線程的入口方法

public Thread(System.Threading.ThreadStart start);

為了調用這個函數,首先需要一個ThreadStart的對象,創建這個方法需要一個靜態方法或實例方法作為參數,下面兩條語句分別創建了一個線程對象

Thread NewThread = new Thread(new ThreadStart(MyClass.StaticFun));

Thread NewThead = new Thread(new ThreadStart(new MyClass().InstanceFun)); 

線程的級別:用ThreadPriority屬性設置-newThread.Priority = ThreadPriority.Hehtest;

線程的啟動:newThread.Start();

線程的休眠:newThread.Sleep(10000) or newThread.Sleep(

new TimeSpan(0,0,0,1000));

線程的掛起:newThread.Suspend();

線程的繼續:newThread.Resume();

線程的終止:newThread.Abort();

下面是多線程實例

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值