我想做一个线程每个2秒钟发送一个消息。
用Console.WriteLine("发送K");就这么简单的一个线程程序。问题一:如何写一个启动线程。
问题二:如何让这个线程每两秒钟执行一次。发送消息。
问题三:在写一个方法,把这个线程给停下来或者杀死。因为有这个需求!请各位师哥代码明示!谢谢~~小妹在这里有礼啦~

解决方案 »

  1.   

    写一个子线程类:
    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达到同样或者更安全的效果.
      

  2.   

    //线程的方法
    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();
      

  3.   

    用System.Timers.Timer 这个类(组件)来做那是相当的容易,洽洽能满足你的要求吧,而且这个组件调用时线程是另外由系统开启(大概是这样因为分步调用时可以看到是立即返回控制的)然后由系统管理,简单设设不就能完成任务了吗?为什么还要自己另开写?