我们用多线程来开发程序,目的就是减少处理器单元的闲置时间,增加处理器单元的操作能力.但这并不能说明在程序中可以泛用多线程,应用不当,会降低系统的性能.例如:如果完成一个作业需要的时间为N,在多线程的情况下,创建线程需要的时间为N0,线程中处理的作业需要的时间为N1,线程销毁需要的时间是N3,还有一些其它的时间这里就不算了,这里可以看出如果作业流程简单的,占用资源和时间不长的则不需要利用一个线程来处理,如果一个作业需要不停的创建线程则需要利用到线程池,从而提高程序的性能.
需要多线程作业,需要添加System.Threading命名空间,下面细说一个Thread的操作:
通过Thread一次使用一个线程,来创建和删除线程.
创建线程:
Thread th = new Thread(new ThreadStart(Method));
开始线程:
th.Start();
销毁线程:
th.Abort();
线程名称:
th.Name="A";
线程休眠:
th.Sleep();
线程挂起:
th.Suspend();
线程恢复:
th.Resume();
说到Thread还有一个方法就是设置后台线程
IsBackground属性设为true,该线程即为后台线程。
后台线程跟前台线程只有一个区别,那就是后台线程不妨碍程序的终止。一旦一个进程所有的前台线程都终止后,
CLR将通过调用任意一个存活中的后台进程的Abort()方法来彻底终止进程。注意:后台线程不能直接操作所在进程之外的数据引用。
|