I have an application that is using a Thread. At the moment I am creating only one Thread and starting it. Within the 
thread I am creating an Excel spreadsheet with the run date stamped on it. This Thread has a System.Timers.Timer in it which 
executes the method that creates the Excel file. Whenever the timer elapsed event is fired, I create the Spreadsheet and 
then insert into a cell DateTime.NOW. 
Problem is it seems to return the same time every time it is called! Actually, I believe that DateTime.Now is returning the 
time the program was started, not the current tiem. I have tried using a variable to hold the DateTime, I also tried 
accessing that variable using the LOCK function but it still returns the same time. Any ideas on why this would occur? 
[code] 
 
 private void Form1_Load(object sender, EventArgs e)
        {
  Thread thrdContract = new Thread(new ThreadStart(StartExcelTimer));
                thrdContract.Start();            
           
        }
       
 protected void StartExcelTimer()
        {
            tmrC = new System.Timers.Timer();
            tmrC.Elapsed += new System.Timers.ElapsedEventHandler(tmr_RunExcel);
            tmrC.Interval = 200000;
            tmrC.Enabled = true;
            tmrC.Start();
        }
  void tmr_RunExcel(object sender, System.Timers.ElapsedEventArgs e)
       {
  ExcelClass ex = new ExcelClass();
  ex.CreateExcelDoc();
 }
 
-- Below is the ExcelClass code that is being called
 public void CreateAndExportSpreadSheetExcelApp(DataTable dt, string cHeader,
       ref string cSeedCellAddress, List<XLSColumnProperty> ColList, string cPath, string cRunTm)
        {
            try
            {
               
  -- There is code before this that just creates the Excel file
  -- Below is the code that is causing a problem
                
  
                range = oExcelSheet.get_Range(cRng1, cRng1);
  
  ******** PROBELM DATETIME CODE********
                range.Value2 = "App Version : Version: 1.0, Date: " + DateTime.Now;
                range.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignLeft;
                range = oExcelSheet.get_Range(cRng1, cRng2);
                range.Merge(objbool);
  
                objBook.SaveCopyAs(cPath);
                objBooks.Close();
                objExcel.Quit();
                System.Runtime.InteropServices.Marshal.ReleaseComObject(objBooks);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(objBook);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(oExcelSheets);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(oExcelSheet);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(objExcel);
                objBook = null;
                objBooks = null;
                objExcel = null;
                GC.Collect();
                GC.WaitForPendingFinalizers();
 
            }
            catch
            { }
        }
[/code]