Donc d'abord voici un pseudo code de ce que je veux améliorer.Liste de processus <T> membre lorsqu'il est ajouté dans un thread séparé
public List<ProcessData> Processes; System.Threading.Thread ProcessThread; void ProcessLoop() { while (true) { for (int i = 0; i < Processes.Count; i++) { if (HasPriority(Processes[i])) { Process(Processes[i]); } } System.Threading.Thread.Sleep(1000); } } void AddProcessData(ProcessData pd) { Processes.Add(pd); if (Suspended(ProcessThread)) Resume(ProcessThread); } void Startup() { ProcessThread = new System.Threading.Thread(ProcessLoop); ProcessThread.Start(); }
Donc ce que je veux faire est de remplacer le « sommeil » avec le code qui suspend le fil ou le faire attendre quelque chose est ajouté à la liste, puis la reprendre. J'ai également besoin d'être thread safe, bien sûr.
Avez-vous vraiment besoin de traiter la liste après avoir ajouté une autre donnée de traitement? Et aussi, dans votre version, vous allez traiter tous les éléments de la liste chaque seconde. Est-ce l'intention? – ULysses
Non, j'ai oublié le code pour supprimer les données une fois qu'elles sont traitées. – user230821