Beim starten eines windows-Dienst starten threading. Wie kann ich dies erreichen?
Erstelle ich ein Windows-Dienst, aber wenn es beginnt, ich will es schaffen threads zu halten pool - /monitor von einem ftp-site. Das Problem, das ich bin vor ist, wenn ich versuche, starten Sie den Dienst mit einem while(true){} innen, die prüfen, ob neue Dateien und dann sollte es ThreadPool.QueueUserWorkItem hat der Dienst ein timeout-Problem beim starten von.
Können Sie einige Beispiel-code von dem, was Sie sind versuchen zu tun?
Könnte das getan werden, als Console-app, ausgeführt auf einem Zeitplan, per Windows Scheduler?
Wo haben Sie Ihre
Bitte geben Sie den code. Im Allgemeinen sollten Sie nur dann durchführen, setup/Initialisierung auf deinem OnStart event-handler. Sie initiieren können mehrere threads von der OnStart, aber Sie wollen nicht, etwas zu tun, in einem endlosen loop.
Könnte das getan werden, als Console-app, ausgeführt auf einem Zeitplan, per Windows Scheduler?
Wo haben Sie Ihre
while (true)
- Schleife? Ihr service - "start" - Methode zurückkehren muss sofort, also, natürlich, die Schaffung einer unendlichen Schleife in dieser Methode wäre eine schlechte Idee. Als DVK Punkte heraus, ohne code ist es schwer zu Kommentar auf, was falsch mit Ihrem code.Bitte geben Sie den code. Im Allgemeinen sollten Sie nur dann durchführen, setup/Initialisierung auf deinem OnStart event-handler. Sie initiieren können mehrere threads von der OnStart, aber Sie wollen nicht, etwas zu tun, in einem endlosen loop.
InformationsquelleAutor Nation | 2014-10-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollte es keine unendliche while-Schleife in den Dienst OnStart-Methode. Diese Methode sollte so bald wie möglich. Verwenden Sie es, um den setup-service threads/tasks, aber nicht etwas zu tun, blockieren.
Ohne exception-handling, thread-pools, etc., hier ist, wie ich verwendet, um es zu tun (das Letzte mal schrieb ich so einen Thread-service, das war 5 Jahre her, also keine Entschuldigung, wenn es datiert ist. Heute versuche ich den Task-Parallel-lib), ANMERKUNG für die Leser: ich bin einfach nur der Demonstration der Idee, und hat diese aus einem alten Projekt. Wenn Sie es besser machen können, fühlen Sie sich frei zu Bearbeiten, um diese zu verbessern, beantworten Sie-oder fügen Sie Ihre eigenen Antwort.
InformationsquelleAutor codenheim