Je ne sais pas comment fonctionne la gestion des threads internes de Parallel.foreach et si elle peut garantir qu'une telle construction fonctionnerait? Où in.hasNext() attend juste un objet dans le flux d'entrée et renvoie la valeur true.C# Est-ce qu'une boucle while foreach parallèle est possible?
Parallel.Foreach(Connections, c =>
{
Input in = c.getInput();
while (in.hasNext()) {
object o = in.getNext();
dosomething(o);
}
}
);
Fondamentalement, puis-je exécuter un tas de boucles infinies dans une structure foreach parallèle tout en garantissant qu'ils vont tous fonctionner en même temps. (Pour les courageux, puis-je ajuster cela afin que je puisse modifier la liste de connexion en ajoutant (et en supprimant, ce qui devrait être trivial) les connexions et il lira toujours l'entrée de toutes les connexions dans la liste).
Cela devrait fonctionner, que se passe-t-il lorsque vous l'essayez? –
Je peux l'essayer mais je ne peux pas garantir qu'il ne produira jamais une condition de course. Donnez-moi 15 minutes pour installer un serveur/client de test. – Raynos
J'ai supposé que la configuration d'un serveur/client de test rapide serait aussi simple et rapide que Java. C# n'est pas aussi gentil. – Raynos