不让控制台的窗口在win下面执行不是一闪就没有了,加一句
Console.ReadLine();

解决方案 »

  1.   

    为什么循环是不可能的?while(true)
    {
      Thread.Sleep(5000);
      //check time, if it is midnight, run some apps
    }
      

  2.   

    Console.Readline()会让程序停在那儿的, 应该用循环.
      

  3.   

    using System.Thread...
    ....
    public void runforever()
    {
        Time a=DateTime.Get...//不好意思,获取当前时间的代码我忘记了
        if (a是12:00)
        {
              // do something...
         }
    }
    ...
    static void Main()
    {
        Thread oThread = new Thread(new ThreadStart(runforever));
        oThread.Start();
    }
    .....
      

  4.   

    嘿嘿,楼上的,没有loop,你怎么能runforever?
      

  5.   

    还是不太明白,打印一行后还是会关闭啊,在win下面调用命令行窗口在执行完是会关闭的啊然后,我不太理解线程,使用线程后还使用循环和我不停的循环取时间不是一样吗?怎么还要开个线程呢?那么是否只要开了线程,线程就会不停的循环下去呢?不停的捕获时间?lonk(小鱼)是否就是利用线程的延续代替了循环这种占用资源的方法那?如果是这样的话,是否说我只要线程不停,那么窗口即不会关闭的,这样也就解决了第一个问题?
      

  6.   

    using System;
    using System.Threading;public class ThreadWork 
    {
    public static void DoWork()
    {
    for(int i = 0; i<100;i++)
    {
    Console.WriteLine("Working thread...");
    Thread.Sleep(100);
                      //你一直要执行的代码。 }
    }}
    class ThreadTest
    {
    public static void Main()
    {
    ThreadStart myThreadDelegate = new ThreadStart(ThreadWork.DoWork);
    Thread myThread = new Thread(myThreadDelegate); TimerCallback timerDelegate = new TimerCallback(CheckStatus);// //A- run 实际运行时使用A部分代码。把B部分注释调。
    // System.DateTime dt=DateTime.Now;
    // System.DateTime dtFomeNow=new DateTime(dt.Year,dt.Month,dt.Day+1,0,0,0);
    // System.TimeSpan ts=dtFomeNow-dt;
    // System.TimeSpan tsDay=new TimeSpan(1,0,0,0);
    // System.Threading.Timer timer = new System.Threading.Timer(timerDelegate,null,ts, tsDay); //B-Test
    System.Threading.Timer timer = new System.Threading.Timer(timerDelegate,null,1000, 1000);
    //第三个参数是第一次执行离现在的时间,第四个参数是以后每次执行的时间。
    myThread.Start();
    Console.Read();
    //可在这里加一些判断,现在为了简单这么写!
    myThread.Abort(); }
    static void CheckStatus(Object state)
    {
    Console.WriteLine("Start My Work");
    //可以做你要定时做的工作
    }}
      

  7.   

    使用现成的好处是不占用你当前现成的资源。如我的例子演示的。如不开另外的线程,Console.Read()会一直阻塞调,你没把做起他的事了。现在这种方式最节省CPU.不用不停地去查询。
      

  8.   

    多谢多谢!那是不是如我理解的,当我把我需要执行的代码放入一个线程中,系统就会不停的去执行这个线程中的代码?不太理解DoWork()的作用,不是也用了循环吗,那个“一直要执行的代码”指的是什么?只循环100次吗,那我这个程序要一直开这那?100次就完了啊
      

  9.   

    不是这样,那个DoWork可以是你正常要执行的功能。比如说启动时。而你要定时运行的代码可以从CheckStatus中启动。DoWork中的循环完全可以删去。不清楚的地方可通过mail/msn问我。
    main&msn:[email protected]
      

  10.   

    用 Timer 控件, 在他的事件里检查机器时间,到12点则执行你的程序
      

  11.   

    感谢colinfly(Colin)在msn上的教导!感谢大家的帮助