Bonjour tout le monde,
Je dois traduire un programme java en c# ( chat internet : un serveur / des clients) mais voila j’ai un ptit problème. Lorsque j’ordonne dans une bloucle :
while(true)
{
reponse = in.readline();
}
cela fonctionne parfaitement en mode console.
mais vu je dois faire une interface graphique donc une richtextbox et bien tout ce complique , lorsque je place cette boucle dans le constructeur de la classe et bien il refuse de me lancer correctement l’application alors qu’il la compile tres bien.
aurize vous l’aimabilité de m’expliqué cmt je pourrais faire . merci d’avance
Je pense qu’il vaudrait mieux que tu créés un thread qui s’occupe de ça, c’est surement le thread de la gui qui fait coincer ta boucle ou un truc du genre.
a mon avis il ne faut pas placer de boucle infinie dans un constructeur.
lol c’est vraiment pas le même que java , il faut adopter une nouvelle stratégie de programmation.
d’accord pour les threads je vois pas comment je pourrais faire ca.
la boucle dans le constructeur tourne nickel en mode console , comme dis karlkox il faut utilisé un thread
Un peu normal, tu dois freezer la thread graphique avec ton truc
En java, je ferais un :
new Thread(new Runnable() {
void run() {...}
}).start();
Mais dans le constructeur, je sais pas trop là d’autant qu’un constructeur c’est fait pour construire l’objet, pas faire une action avec…
En C# :
using System.Threading;
class taClasse // (qui hérite de form, toussa)
{
public Thread thread1;
public taClasse() // Ton constructeur
{
initializeComponents();
thread1 = new Thread(new ThreadStart(taFonction));
thread1.start();
}
public void taFonction() // fonction dans laquelle tu mets ta boucle
{
while (true)
{
}
}
}
Les noms sont bien sur approximatifs, donc ne fait pas un copier coller
Si le thread te pompe trop de ressources, change sa priorité avant le thread.start();