<<  < 2013 - >  >>
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31




winform窗体中的代码(对应线程相关类):

 1 using System.Threading;

 2

 3 /// <summary>

 4 /// 响应开始按钮单击事件

 5 /// </summary>

 6 /// <param name="sender"></param>

 7 /// <param name="e"></param>

 8 private void btnStart_Click(object sender, EventArgs e)

 9 {

10     //实例化ThreadNotice类对象,ThreadNotice类实现了IThreadNotice接口

11     IThreadNotice tn = new ThreadNotice();

12     //实例化一个Thread对象,并且指定该Thread对象执行Run方法

13     Thread th = new Thread(Run);

14     //启动线程,并且传入线程方法(Run)需要的一个参数

15     //注意,这里最多能传入一个参数!!并且要求线程方法的参数为Object类型!!

16     th.Start(tn);

17 }

18

19 //线程中运行的方法

20 void Run(Object obj)

21 {

22     //将对象转换成接口类型

23     IThreadNotice tn = (IThreadNotice)obj;

24     //假设状态为1,则调用实现IThreadNotice接口类的状态1处理方法,并传入状态1下的数据

25     tn.ThreadEvent1("状态1");

26     //假设为状态2,则调用实现IThreadNotice接口类的状态2处理方法,并传入状态2下的数据

27     tn.ThreadEvent2("状态2");

28 }

         线程状态处理接口:

1 //线程状态通知接口

2 public interface IThreadNotice

3 {

4     //状态1处理方法

5     void ThreadEvent1(string msg);

6     //状态2处理方法

7     void ThreadEvent2(string msg);

8 }

         状态处理类:

 1 using System.Diagnostics;

 2

 3 //ThreadNotice类实现了IThreadNotice接口

 4 public class ThreadNotice:IThreadNotice

 5 {

 6     //ThreadNotice类对于状态1的处理

 7     public void ThreadEvent1(string msg)

 8     {

 9         Debug.WriteLine("ThreadNotice类处理——" + msg);

10     }

11

12     //ThreadNotice类对于状态2的处理

13     public void ThreadEvent2(string msg)

14     {

15         Debug.WriteLine("ThreadNotice类处理——" + msg);

16     }

17 }

 

shixaiochen我们今天学的,很有用
发表评论:
天涯博客欢迎您!