C#中的计时器与不同的线程

时间:2010-09-27 06:02:55

标签: c#

   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
     }

我想知道当OnTimedEvent工作时Main()方法是否会添加文件,或者当timer_event完成时它将停止工作

1 个答案:

答案 0 :(得分:4)

好吧,您还没有说过您正在使用哪个Timer类,但假设您没有使用Windows窗体计时器,那么是:OnTimedEvent方法将以不同方式调用线程到主线程(实际上是线程池线程),因此它们将同时运行。

(请注意,与您的问题标题相反,这不是一个不同的进程 - 只是一个不同的线程。)