Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Wie einen "Loop" Thread am Ende des Programms beenden?
IncepTer
myCSharp.de - Member



Dabei seit:
Beiträge: 24

Themenstarter:

Wie einen "Loop" Thread am Ende des Programms beenden?

beantworten | zitieren | melden

Hallo Freunde,

ich komme immer besser mit C# voran und die Sprache gefällt mir mehr und mehr.
Mein Problem:

Ich möchte gern eine gewisse Aufgabe in einen eigenen Thread auslagern. Es soll z.B. immer ein Verzeichnis überwacht und dabei die Ordner gezählt werden. (Nur als Beispiel).
Dabei kommt es logischerweise ab und an zu Fehlern, wenn der Eltern Thread zuerst geschlossen wird.

Dabei mache ich es z.Z. so: (Pseudo Code)


Thread zaehle  = new Thread(Aufgabe);
zaehle.start;

private void Aufgabe(){
   Zaehle.Ordner;
   Thread.Sleep(2000);
   Aufgabe();
}

Ich denke Ihr wisst, was ich meine.
Ist das der richtige Ansatz dafür? Was sollte ich stattdessen verwenden?

Vielen Dank für Eure Hilfe =)
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von IncepTer am .
private Nachricht | Beiträge des Benutzers
unconnected
myCSharp.de - Member

Avatar #avatar-3200.jpg


Dabei seit:
Beiträge: 862
Herkunft: Oerlinghausen/NRW

beantworten | zitieren | melden

Hallo IncepTer,

schau Dir mal Cancellation in Managed Threads an.
private Nachricht | Beiträge des Benutzers
Alf Ator
myCSharp.de - Member



Dabei seit:
Beiträge: 637

beantworten | zitieren | melden

Hallo IncepTer,
Zitat von IncepTer
Es soll z.B. immer ein Verzeichnis überwacht und dabei die Ordner gezählt werden. (Nur als Beispiel).

Nur als Anmerkung: dafür eignet sich unter Umständen auch der FileSystemWatcher


Für die Threading-Geschichten könntest du dir auch mal System.Threading.Tasks anschauen. Da sind unter anderem die Keywords async/await interessant.

Richtig umgesetzt brauchst du für deine Anwendung eventuell gar keinen Loop-Thread. Threading würden dann einfach da verwendet werden, wo es gebraucht wird.

Das Alles ist nur als Info und Denkansatz gedacht, für Interessierte.

Viele Grüße
Alf
private Nachricht | Beiträge des Benutzers