(源码下载地址,http://download.youkuaiyun.com/source/406996)
在进行实际编码之前,有几个概念要先讲一下。
1。启动一个线程
.net中,包含线程类的命名空间是using System.Threading,通过这个空间里的类Thread可以启动一个线程,就像下面这样:


















由代码可见,有两个地方需要注意。一是类Thread的构造函数需要传递一个ThreadStart的对象作为参数;二是这个ThreadStart类的构造函数需要传递一个无返回类型,无参数的函数的名字作为参数,这里传递的是private void WaitToMakeFile()。
最后通过Thread.Start()方法来启动线程,线程中实际执行的是函数WaitToMakeFile中的代码。在WaitToMakeFile中的代码执行完毕后,线程退出。
可能会问,需要向线程中传递参数应该怎么办呢?这需要一种新的思路:

































不错,需要定义一个新类,ThreadStart类的参数传递的是这个新类中的无参数无返回值的函数,而需要传入线程的参数则写入到这个类的实例中。
2。在线程中操作主窗口上的控件。
在线程中,并不能直接控制主窗口上的控件,因为这些控件并不是在这个线程中产生的,直接操作其他线程的控件可能会产生一些不可预期的错误。应该像下面这样调用:


















实际过程是先定义一个委托,然后通过控件的Invoke()方法来调用这个委托。
3。关于TcpServer、TcpClient的使用,网上的教程、文章一大堆,而这里只是一些简单应用,因此不做讲解。
ie.2008-04-09