Ich kann dir da mal
AsyncCalls empfehlen. Habe es selbst im Einsatz und es macht Multithreading und das Zusammenführen von Threads sehr einfach und elegant.
Da Andy Delphis Referenzzählung für Interfaces für seine(bzw deine
) Zwecke verwendet, kannst du einfach innerhalb einer Method x Threads losfeuern und beim Verlassen der Methode wird der Thread der Methode solange blockiert bis alle Threads fertig sind.
So kannst du sehr easy kleine Aufgaben auf mehrere Kerne aufteilen ohne dass sich die Threads außerhalb der Methode bemerkbar machen. Oder anders ausgedrückt, damit ist es einfach eine bestehende Anwendung für Multithreading aufzuwerten.
Es geht natürlich noch viel mehr damit.