1. What's timer
Timer provides a mechanic for executing a method in at specified intervals.
The hierarchy can be the following:
System. Threading. timer;
System. Timer. timer;
System. Windows. Form. timer;
2. Relevant Method about timer.
Public class asyntest
{
Private int result ;//Which is get randonly asynchrounousely by method getresultasync;
Manualresetevent endprocessevent;
Public asyntest (manualresetevent endprocessevent)
{< br> This. endprocessevent = endprocessevent;
}
Int getresult ()
{
Random RD = new random ();
Result = (INT) (100 * RD. Next () % 100;
Console. writeline ("Get value asynchronousely! ");
Return result;
}
Public Delegate int getresultdelegate ();
Public void getresultasync (Object OBJ)
{
Getresultdelegate GRD = new getresultdelegate (getresult );
Asynccallback cb = new asynccallback (This. getintergerfromcallback);
Iasyncresult AR = GRD. begininvoke (CB, null );
Console. writeline ("result = {0}", result );
If (result % 2 = 0)
Console. writeline ("result is an even number ");
}
// Get the result asynchronousely
Public void getintergerfromcallback (iasyncresult AR)
{
Try
{
Getresultdelegate del = (getresultdelegate) (asyncresult) Ar). asyncdelegate;
Del. endinvoke (AR );
}
Catch (exception ex)
{
Console. writeline (ex. Message );
}
}
Static void main (string [] ARGs)
{
System. Threading. thread. currentthread. Name = "mainthread ";
Manualresetevent endprocessevent = new manualresetevent (false );
Asyntest hiron = new asyntest (endprocessevent );
Timercallback = new timercallback (hiron. getresultasync );
Timer timer = new timer (timercallback, I, 0, 2000 );
// Blocks the current thread until the current waithhandle es a signal
Endprocessevent. waitone ();
}
We can see such windows: