Vraag : System.Threading.Timer probleem.

De beste deskundigen,

I hebben een consoletoepassing die System.Threading.Timer gebruikt om bepaalde gegevensbestandhandeling regelmatig uit te voeren. Wanneer dat alles moet worden gedaan is één of andere lijn op de console te schrijven, de boete van de tijdopnemerwerken. Maar wanneer ik het gegevensbestandmateriaal toevoeg, wordt de methode slechts eenmaal geroepen. Kon u aan alstublieft verklaren me waarom dit gebeurt?
I gebruikte diverse tijdintervallen, met zelfde result.
Thanks.
" codeBody "
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
static nietige Leiding (koord [] args)
        {
            Tijdopnemer tpsTimer = nieuwe Tijdopnemer (ongeldige CheckForPastDue, 1200, 30000);
            terwijl (waar);
        }

        openbare statische nietige CheckForPastDue (stateInfo van Objecten)
        {
            probeer
            {
                Console.WriteLine (DateTime.Now.ToLongTimeString ());

                // Controle voor titels over tijd
                koord commandText = @ " UITGEZOCHTE nl.ID, nl.BookStem, NL. Aan, n.LastName, n.FirstName VAN narratorlinks NL 
                                   SLUIT me aan bij Vertellers n OP nl.NarratorStem = n.NarratorStem
                                   WAAR `AAN `- INTERVAL 3 DAG <= NU () EN nl.AudioReceive IS ONGELDIG; „;

                objecten resultaat = valse DBOperations.Execute (, verklaren ongeldige CommandType.Text, commandText, nietig);
…

Antwoord : System.Threading.Timer probleem.

is er een reden u een Threading.Timer versus System.Timer gebruikt?    Een threading.timer de methode CheckForPastDue voert op een andere draad toen uit die tot het leidde.  dit veroorzaakt soms kwesties voor het eenvoudige ding dat u probeert om te verwezenlijken.  Ik had een gelijkaardige kwestie en het gebruiken van System.Timer werkte voor me.
Andere oplossingen  
 
programming4us programming4us