线程

来源:互联网 发布:店老大软件 编辑:程序博客网 时间:2024/04/29 17:34

    最近写了几个程序,都用到了线程,在做这些程序的时候,通过在线程操作的反复修改,对线程有了比较深刻的认识,在这里就总结一下,和大家一起分享一下我的一些心得,希望能对大家有所帮助,如果大家有什么更好的方法,请不要吝啬,能提出来,大家共同讨论,是技术共同提高。

    线程是进程中的一个小单元,很多书上都写过,.net程序编译以后,运行的就是一个主线程。我们要在这个主线程中创建一个新线程,基本的用法如下所示:

    这是大部分书中写的创建线程的方法,我目前也是这样用的。其中"BtnStart"是一个方法,在btnStart按钮点击后触发事件是就运行这个方法。

    在实例化这个线程后,如果没有用"BtnThead.Start();"时,这个线程"BtnThead"的状态是UnStarted,当运行"BtnThead.Start();"后,"BtnThead"的状态是Running,当"BtnStart"方法运行完后,"BtnThead"的状态是Stopped。这些状态大家要记住,有助于我们了解线程运行的流程。

    当你在程序运行到半途中,你不想运行了,可以在"BtnStart"方法中加入一句"BtnThead.Suspend()"或"BtnThead.Abort()";其中,前者是暂停线程,后者是停止线程。当你Abort后,就不能再Start了,所以要慎用哦。

    在我做线程的时候,因为需要每天定时执行程序,所以在做线程循环的时候,用了很多方法,都不可行。最后,在QQ群中朋友的大力帮助下,终于找到了一个比较可行的方法,具体如下:

    思路:在"BtnStart"方法中,用"While"循环程序,在"While"最好加一句"BtnThead.Suspend()",让线程暂停。在定时器中进行时间判断,到了规定时间,用"BtnThead.Resume()"方法将线程恢复,这样就可以继续执行"BtnStart"方法了。

    实例代码如下:

    这样,线程就会持续运行,如果想要线程停止,可以加入按钮,用"BtnThead.Abort()"方法来停止

    大体的线程总结就是这样的,写的比较乱,希望大家能从中吸取经验教训,并提出更好的建议意见。