WEB开发网
开发学院软件开发C语言 C#多线程编程(1):线程的启动 阅读

C#多线程编程(1):线程的启动

 2010-09-30 22:34:46 来源:WEB开发网   
核心提示: 第二种方法和上面方法有些相似,也是需要引入外部类,C#多线程编程(1):线程的启动(5),并且将Thread实例放在引入的类中,这种情况适合于在线程中处理的业务逻辑比较复杂的情况,在.net类库中虽然存在着庞大的类库,但是并不是总会有合适的类来解决我们所遇到的问题,在前不久处理的一个项目中我用过

第二种方法和上面方法有些相似,也是需要引入外部类,并且将Thread实例放在引入的类中,这种情况适合于在线程中处理的业务逻辑比较复杂的情况。在前不久处理的一个项目中我用过这种情况,它是用来实现双向数据传输的。

如果实现上面的效果,代码如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
    
namespace StartThread
{
         class MyThreadParameter
         {
                 private int interval;
                 private int loopCount;
                 private Thread thread;
                    
    /// <summary>
    /// 构造函数
    /// </summary>
                 /// <param name="interval">线程的暂停间隔</param>
                 /// <param name="loopCount">循环次数</param>
                 public MyThreadParameter(int interval,int loopCount)
                 {
                         this.interval = interval;
                         this.loopCount = loopCount;
                         thread = new Thread(new ThreadStart(Run));
                 }
    
                 public void Start()
                 {
                         if (thread != null)
                         {
                                 thread.Start();
                         }
                 }
    
                 private void Run()
                 {
                         for (int i = 0; i < loopCount; i++)
                         {
                                 Console.WriteLine("系统当前时间毫秒值:" + DateTime.Now.Millisecond.ToString());
                                 Thread.Sleep(interval);//让线程暂停
                         }
                 }
         }
         class Program
         {
                 static void Main(string[] args)
                 {
                         MyThreadParameter parameterThread = new MyThreadParameter(30, 50);
                         parameterThread.Start();
                 }
    
         }
}

上面的代码的运行效果和前面的代码运行效果类似,只不过是将业务处理代码放在一个单独的类MyThreadParameter中,使得MyThreadParameter看起来也像一个Thread,实际上维护的还是其内部的Thread,在一些大型系统中这样做的好处是便于维护。

总结:在本篇主要讲述如何启动线程的问题,在启动时可能会遇到无需参数、需要多个参数的情况,在这里讲述了如何解决这些问题的思路。在.net类库中虽然存在着庞大的类库,但是并不是总会有合适的类来解决我们所遇到的问题,但是只要肯动脑筋总会想到合适的办法。

文章来源:http://zhoufoxcn.blog.51cto.com/792419/187031

上一页  1 2 3 4 5 

Tags:线程 编程 线程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接