none
timer控件问题 RRS feed

  • 问题

  • 如果timer设定1秒执行一个过程,但是这个过程执行时间大于1秒,那会出现什么情况呢。是1秒后timer另起一个线程执行还是等刚才这过程执行完再执行。
    2009年4月15日 5:55

答案

  • 完全看你用的什么程序  什么timer

    winform 缺省1线程     你用timer控件只能用这一个  而且如果1秒没有做完  就会取消下一个事件

    console程序多线程   可以用 threading.timer   1秒没做完  自动开新的线程  (.net后台线程池)



    我前几天手痒写了一个程序  用任务管理器可以看到程序不断增加的线程数

     class Program
        
        {
    
    
    
            static System.Threading.Timer t = new System.Threading.Timer(new System.Threading.TimerCallback ( work) );
            static void Main(string[] args)
            {
                t.Change(10000, 1000);
                selfHost.Open();
    
                
                Console.Read();
            }
    
            static void work(object a)
            {
                for (var i = 0; i < 10; i++)
                {
                    System.Threading.Thread.Sleep(1111);
                    Console.WriteLine(i);
                }
                
                
            }
    
    
            
        }

    工作突然有点忙 嘿嘿
    2009年4月15日 6:19
    版主