2011-04-22 3 views
1

J'ai une classe wrapper dans Outlook qui a le potentiel de gérer un grand nombre d'événements à la fois, mais je veux seulement inviter l'utilisateur une fois après qu'il se déclenche. J'utilise Redemption pour stocker mes ID de message/dossier, mais je dois créer un moyen de déclencher l'événement une fois que tous les ID ont été capturés.Création d'une minuterie pour une classe wrapper C#

Il est recommandé d'utiliser une classe Timer pour gérer cela, mais je n'en ai pas encore écrit et je suis un peu confus sur la manière d'accomplir correctement cette tâche.

Merci à l'avance

Répondre

1

Voici un exemple simple glané from MSDN:

using System; 
using System.Timers; 

public class TimerExample 
{ 
    public static void Main() 
    { 
     Timer aTimer = new Timer(); 
     aTimer.Elapsed += OnTimedEvent; 
     aTimer.Interval = 2000; 
     aTimer.Enabled = true; 
     Console.ReadLine(); // artificially pause app to let timer run 
     GC.KeepAlive(aTimer); 
    } 

    private static void OnTimedEvent(object source, ElapsedEventArgs e) 
    { 
     Console.WriteLine("Timer event fired"); 
        // pseudocode: 
        // check for new events collected 
        // if any exist, take first and present UI to user 
        // if more exist, then consinue 
    } 
} 

Ceci est une application console qui crée et démarre la minuterie dans le point d'entrée de l'application. Si vous créez une application graphique, le même code peut être utilisé dans un événement OnLoad d'un formulaire. Le gestionnaire OnTimedEvent resterait à peu près le même. Cet événement est l'endroit où vous devez tester votre logique pour tester les événements OUtlook collectés et décider si l'utilisateur doit ou non être averti.

+0

Je l'ai vu, mais je ne suis pas sûr de savoir comment le déclencher dans une classe wrapper lorsque plusieurs threads seront lancés simultanément –

+0

Qu'est-ce que votre classe wrapper encapsule? Btw, cette version de l'idée Timer utilise le threading ... Démarrez-le et gérez les événements où cela a du sens. De quoi vos différents fils sont-ils responsables? –

+0

Il encapsule les événements MoveTo et CopyTo dans Outlook capturés par Redemption. –