Nur erst mal ein Problem: Wenn das Hauptprogramm geschlossen werden soll und noch kopiert wird, soll das natürlich nicht einfach abgebrochen werden.
Das gäb's aber immer
- Ohne Threads würde das Hauptfenster nicht reagieren, das verleitet Benutzer zum Abschießen...
- Bei jedem Thread, den Du implementierst, musst Du diese Situation berücksichtigen.
Als simplen Workaround (der aber nicht so schön wäre wie die von jaenicke genannte Queue) könntest Du ein Hilfsprozess beilegen, den Du für jeden Kopierjob startest. Der läuft weiter, parallel (weil eigener Prozess) und auch noch wenn das Hauptprogramm geschlossen wird.