您的位置:程序门 -> .net技术 -> c#



谁能告诉小妹,如何在定时一个线程里循环执行某一程序!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


谁能告诉小妹,如何在定时一个线程里循环执行某一程序![已结贴,结贴人:wangtiantian23]
发表于:2007-03-14 02:36:52 楼主
我想做一个线程每个2秒钟发送一个消息。
用console.writeline( "发送k ");就这么简单的一个线程程序。

问题一:如何写一个启动线程。
问题二:如何让这个线程每两秒钟执行一次。发送消息。
问题三:在写一个方法,把这个线程给停下来或者杀死。因为有这个需求!

请各位师哥代码明示!谢谢~~

小妹在这里有礼啦~
发表于:2007-03-14 06:05:521楼 得分:20
写一个子线程类:
public   class   threadexample   {
        public   static   bool   bstop;//是否停止标志量
        public   static   void   threadproc()   {
                while   (!bstop)   {
                        console.writeline( "发送k ");
                        thread.sleep(2000);//每两秒一次
                }
        }


在主函数,或者启动线程的地方写:
                thread   t   =   new   thread(new   threadstart(threadproc));
                t.start();


在需要停止的地方写:
              threadexample.bstop   =   true;


这里简化了停止逻辑,实际上也可以用mutex达到同样或者更安全的效果.
发表于:2007-03-14 06:06:092楼 得分:0
帮mm是义不容辞的责任.
发表于:2007-03-14 08:45:283楼 得分:0
好早啊……
发表于:2007-03-14 11:11:564楼 得分:0
嗯,一楼正解。
发表于:2007-03-14 11:17:285楼 得分:0
一楼
发表于:2007-03-14 11:24:066楼 得分:0
沒問題了。
发表于:2007-03-14 11:27:547楼 得分:0
来晚了,后悔啊
发表于:2007-03-14 11:34:158楼 得分:0
学习中
发表于:2007-03-14 11:37:539楼 得分:20
//线程的方法
private   void   printk()
{
                        console.writeline( "发送k ");
                        thread.sleep(2000);//每两秒一次
                        printk();
}

//在main里面启动线程
                thread   td   =   new   thread(new   threadstart(printk));
                td.start();
//停止线程
                thread   tr=thread.currentthread;
if(tr!=null)
tr.abort();
发表于:2007-03-14 11:42:0010楼 得分:0
一楼的办法有点投机的感觉,我这个看起来比较正统,西西
发表于:2007-03-14 11:44:1111楼 得分:10
用system.timers.timer   这个类(组件)来做那是相当的容易,洽洽能满足你的要求吧,而且这个组件调用时线程是另外由系统开启(大概是这样因为分步调用时可以看到是立即返回控制的)然后由系统管理,简单设设不就能完成任务了吗?为什么还要自己另开写?


快速检索

最新资讯
热门点击