C#多线程编程(1):线程的启动
2010-09-30 22:34:46 来源:WEB开发网第二种方法和上面方法有些相似,也是需要引入外部类,并且将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
更多精彩
赞助商链接