Grundlegendes Entwurfsmuster für die Verwendung von TPL im Windows-Dienst für C #

Ich versuche, einen Windows-Dienst aufzubauen, der eine Art Parallelität für das Poolen von Dateien aus verschiedenen FTP-Quellen benötigt. Um mehrere FTP-Downloads zu starten, suche ich in der TPL-Bibliothek nach einfachen Foreach-Schleifen, um die Parallelität zu vereinfachen. Aber wenn ich suche, wie ich meine Dienste starten oder stoppen kann, ist es das Beste, neue Threads in @ zu erstelleOnStart() Methode, wie hier beschriebenhttps: //stackoverflow.com/a/4865893/6943

eim Lesen von TPL ist immer zu beachten, dass TPL weiter fortgeschritten ist als das manuelle Einfädeln und das manuelle Stoppen des Einfädeln

Ich habe keinen Beispielbeitrag gefunden, der beschreibt, wie eine TPL-Schleife in WindowsService erstellt wird.

Mein Code:

protected override void OnStart(string[] args)
{
     _thread = new Thread(WorkerThreadFunc);
     _thread.Name = "My Worker Thread";
     _thread.IsBackground = true;
     _thread.Start();
}

Und drinnenWorkerThreadFunc sme Art von TPL @ zu t

private void WorkerThreadFunc()
{
foreach (string path in paths)
{
    string pathCopy = path;
    var task = Task.Factory.StartNew(() =>
        {
            Boolean taskResult = ProcessPicture(pathCopy);
            return taskResult;
        });
    task.ContinueWith(t => result &= t.Result);
    tasks.Add(task);
}

}

Oder sollte ich meine WorkerThreadFunc auch als TASK starten?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage