2.2.2  Wykorzystanie funkcji RegisterTimeEvent

 

Metoda funkcji RegisterTimeEvent interfejsu IApplication polega na zadeklarowaniu funkcji zwrotnej, które będzie okresowo wykonywana. Funkcja RegisterTimeEvent pozwala na bardzo szczegółowe określenie okresu i momentów wykonywania funkcji zwrotnej.

 

C#

using System;
using
 System.Windows.Forms;
using
 Askom.AsixEvo.Scripting;
 

public
 class Timer : IScript
{
   IApplication application;
   
public bool Initialize(string[] aParameters, IApplication aApplication)
   {
      application = aApplication;
      application.RegisterTimeEvent(Report1Hour, 
TimeSpan.FromHours(1), 

                                    TimeSpan.FromMinutes(15));
       
return false;
   }
 
   
public void FinalizeScript()
   {
 
   }
 
   
void Report1Hour()
   {
      application.ReportMessage(EvoMessageType.Info, 
"Wykonanie raportu o godzinie " +

                                DateTime.Now);
   }
 

 

VB

Imports System
Imports
 System.Windows.Forms
Imports
 Askom.AsixEvo.Scripting
 

Public
 Class TimerVB
    
Implements IScript
 
    
Dim application As IApplication
    
Public Function Initialize(ByVal aParameters() As StringByVal aApplication _

        As IApplication) As Boolean Implements IScript.Initialize
 
        application = aApplication
        application.RegisterTimeEvent(AddressOf Report1Hour, TimeSpan.FromHours(1), _

                                      TimeSpan.FromMinutes(15))
        Return False
 
    End Function
 
    Public Sub FinalizeScript() Implements IScript.FinalizeScript
 
    End Sub
 
    Sub Report1Hour()
 
        application.ReportMessage(EvoMessageType.Info, "Wykonanie raportu o godzinie " _

                                  & DateTime.Now)
    End Sub
 
End
 Class 

 

W metodzie Initialize rejestrowana jest funkcja zwrotna Report1Hour. Zwrócenie wartości false powoduje, że skrypt pozostanie załadowany w pamięci.

Drugi parametr metody RegisterTimeEvent określa okres czasu pomiędzy kolejnymi wywołaniami funkcji zwrotnej, a parametr trzeci przesunięcie chwili początkowej. Metoda Report1Hour będzie wywoływana co 1 godzinę, 15 minut po każdej pełnej godzinie.