2010-09-27 50 views
3
static Timer _timer; 

    static void Main(string[] args) 
    { 
     _timer = new Timer(1000); 
     _timer.Enabled = true; 
     _timer.Elapsed += new ElapsedEventHandler(OnTimedEvent); 

     for (int i = 0; i < 10000; i++) 
     { 
     string strXMLComperator = @"D:\randomFiles\rand" + i + ".txt"; 

     if (!File.Exists(strXMLComperator)) 
     { 
      StreamWriter sWriter = new StreamWriter(strXMLComperator, false, Encoding.UTF8); 
      sWriter.Write("<?xml version=\"1.0\" encoding=\"utf-8\"?><catalog>dasd</catalog>"); 
      sWriter.Flush(); 
      sWriter.Close(); 
      sWriter.Dispose(); 
     } 
     } 
    } 



    private static void OnTimedEvent(object source, ElapsedEventArgs e) 
    { 
     //some code here 
    } 

我想知道会main()方法添加文件时OnTimedEvent工程或将停止工作,同时timer_event完成定时器在C#中使用不同的线程

回答

4

好了,你还没说这Timer类,你”重新使用,但是假设你没有使用Windows Forms定时器,那么是的:OnTimedEvent方法将在与主线程(实际上是线程池线程)不同的线程中调用,因此它们将同时运行。

(请注意,违背你的问题的标题,这不是一个不同过程 - 不同的只是线程

+0

System.Timers.Timer – AEMLoviji 2010-09-27 06:07:30

+0

真的吗? OnTimedEvent()和Main()在不同的线程中工作?这意味着所有将正常工作主要方法将添加文件和相同的时间计时器会做一些思考。我usin System.Timers.Timer – AEMLoviji 2010-09-27 06:09:29

+0

@AemLoviji:是的......根据文档:“Elapsed事件引发一个ThreadPool线程” – 2010-09-27 06:17:08