Frage : System.Threading.Timer Problem.

Liebe Experten,

I haben eine Konsolenanwendung, die System.Threading.Timer verwendet, um bestimmten Datenbankbetrieb regelmäßig durchzuführen. Wenn alles, das getan werden muss, irgendeine Linie auf die Konsole zu schreiben ist, ist der Timer. Aber, wenn ich das Datenbankmaterial addiere, wird die Methode nur einmal benannt. Konnten Sie mir bitte erklären, warum dieses geschieht?
I verwendete verschiedene Zeitabstände, mit dem gleichen result.
Thanks.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
static leeres Haupt (Schnur [] args)
        {
            Timer tpsTimer = neuer Timer (CheckForPastDue, Null, 1200, 30000);
            während (zutreffend);
        }

        allgemeines statisches leeres CheckForPastDue (Gegenstand stateInfo)
        {
            Versuch
            {
                Console.WriteLine (DateTime.Now.ToLongTimeString ());

                //-Überprüfung auf die Titel überfällig
                Schnur commandText = @ " AUSERWÄHLTES nl.ID, nl.BookStem, NL. Zu, n.LastName, n.FirstName von den narratorlinks NL 
                                   Erzähler n AUF VERBINDEN nl.NarratorStem = n.NarratorStem
                                   WO `zum `- ABSTAND ein 3 Tag<= JETZT () UND nl.AudioReceive IST UNGÜLTIG; „;

                Gegenstandresultat = DBOperations.Execute (falsch, CommandType.Text, Null, commandText, Null);
…

Antwort : System.Threading.Timer Problem.

gibt es ein Grund, den Sie ein Threading.Timer gegen das System.Timer verwenden?    Ein threading.timer die CheckForPastDue Methode führt auf einem anderen Gewinde dann das durch, das es herstellte.  dieses verursacht manchmal Ausgaben für die einfache Sache, die Sie versuchen, zu vollenden.  Ich hatte eine ähnliche Ausgabe und die Anwendung des System.Timer arbeitete für mich.
Weitere Lösungen  
 
programming4us programming4us