using System;
using System.Timers;
using System.Data;
public class Timer1
{
private static System.Timers.Timer aTimer;
public static void Main()
{
// Normally, the timer is declared at the class level,
// so that it stays in scope as long as it is needed.
// If the timer is declared in a long-running method,
// KeepAlive must be used to prevent the JIT compiler
// from allowing aggressive garbage collection to occur
// before the method ends. (See end of method.)
//System.Timers.Timer aTimer;
// Create a timer with a ten second interval.
aTimer = new System.Timers.Timer(10000);
// Hook up the Elapsed event for the timer.
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
// Set the Interval to 2 seconds (2000 milliseconds).
aTimer.Interval = 2000;
aTimer.Enabled = true;
Console.WriteLine("Press the Enter key to exit the program.");
Console.ReadLine();
// If the timer is declared in a long-running method, use
// KeepAlive to prevent garbage collection from occurring
// before the method ends.
//GC.KeepAlive(aTimer);
}
// Specify what you want to happen when the Elapsed event is
// raised.
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
DataTable dt = new DataTable();
dt.CaseSensitive = true;
//Create DataColumns
DataColumn col1 = new DataColumn("id", typeof(int));
DataColumn col2 = new DataColumn("UserName", typeof(string));
//Config Propertyies
col2.AllowDBNull = false;
col2.MaxLength = 50;
col2.Unique = true;
col1.AutoIncrement = true;
col1.AutoIncrementSeed = 100;
col1.AutoIncrementStep = 1;
col1.ReadOnly = true;
//the DataColumn with Expression
DataColumn col3 = new DataColumn("Expression", typeof(string));
col3.Expression = "id+UserName";
//add DataColumns to dt;
dt.Columns.Add(col1);
dt.Columns.Add(col2);
dt.Columns.Add(col3);
dt.PrimaryKey = new DataColumn[] { dt.Columns[0] };
DataRow dr;
for (int i = 0; i < 100; i++)
{
dr = dt.NewRow();
dr[1] = "Roboth" + i;
dt.Rows.Add(dr);
}
foreach (DataRow row in dt.Rows)
{
Console.WriteLine(row["UserName"].ToString());
}
Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime);
}
}
/* This code example produces output similar to the following:
Press the Enter key to exit the program.
The Elapsed event was raised at 5/20/2007 8:42:27 PM
The Elapsed event was raised at 5/20/2007 8:42:29 PM
The Elapsed event was raised at 5/20/2007 8:42:31 PM
...
*/