最近用.Net写个测试工具,用到了多线程技术,跟大家分享一下。
Thread类有几个至关重要的方法,描述如下:
Start():启动线程;
Sleep(int):静态方法,暂停当前线程指定的毫秒数;
Abort():通常使用该方法来终止一个线程;
Suspend():该方法并不终止未完成的线程,它仅仅挂起线程,以后还可恢复;
Resume():恢复被Suspend()方法挂起的线程的执行
如何启动一个新的线程并让他工作呢,在C#中,线程入口是通过ThreadStart代理(delegate)来提供的,你可以把ThreadStart理解为一个函数指针,指向线程要执行的函数,当调用Thread.Start()方法后,线程就开始执行ThreadStart所代表或者说指向的函数。口说无凭,大家还是看代码吧:)
ok 大家看到了吧,启动一个线程,让他干活就是这么简单,不知道大家看到这的时候,有没有疑问呢,比如如果要运行的方法是有参数的怎么办呢,如何传参数呢?这时候我们有2中方法去实现。
1. Thread的有两个构造函数,其中一个使用参数是ThreadStart,说明该线程在构造函数中不能带入参数。还有一个ParameterizedThreadStart,则可以为你的线程传入参数,不过这个要把参数封装在一个类里面,大家看例子吧
大家看到这个例子赶紧怎么样,是不是感觉也就能凑活用,需要用类去封装参数。下面给大家介绍一下做优雅的一种方法,利用匿名委托
以上就是操作一个线程让他完成我们想让他完成的工作(有点绕口哈),是不是比较简单呢。这回先到这,下回和大家分享一下一个线程工作完成后如何通知另一个线程呢(未完待续)