Résolu Cherche boucle infini C#

Statut
N'est pas ouverte pour d'autres réponses.

iB3

Patrol GR Y60, Audi TT MK1 225
Premium
Inscription
4 Février 2013
Messages
9 955
Réactions
2 928
Points
14 393
Salut à tous je travail sur un jeux qui a besoin de boucle infini sur certain hack donc j'aimerai savoir comment faire sa :$

Merci beaucoup :)
 

-Unknauwn-

Premium
Inscription
20 Février 2013
Messages
2 391
Réactions
1 880
Points
14 213
Faut faire gaffe que la boucle infinie ne fige pas l'application ou ne la ralentisse pas
Bandit.gif
 

iB3

Patrol GR Y60, Audi TT MK1 225
Premium
Inscription
4 Février 2013
Messages
9 955
Réactions
2 928
Points
14 393
Généralement ça fige parce que le boucle utilise le même Thread que celui de l'interface. Vive la méthode synchrone :lol: sinon while est une généralité parmis tant d'autre, le mieux reste d'utiliser le for ou foreach :)
Donc je met quoi à la place ?
 
D

delete221380

Donc je met quoi à la place ?
Laisse comme ça si il n'y a aucun problème. C'est pas pour le peu de code dedans que ça fera freez, par contre si c'est le cas faut utiliser le Task pour le faire sur un thread parallèle et techniquement vu que ça n'utilise pas le même thread c'est plus rapide mais laisse comme ça ;)
 
D

delete221380

Si ça freez comme Bapt a dis tu l'utilise dans un BackgroundWorker (ça fera comme si c'étais séparé) donc aucun lag sur la Form et en plus y'as que 3 evenements pour le bg_worker donc simple a faire ;)
J'en avais fait un exemple ici : http://reality-gaming.fr/threads/c-...meliorer-la-fluidite-dune-application.314912/
Dans ta fonction du tool tu lance le BgWorker :

Code:
backgroundWorker1.RunWorkerAsync();

Dans cette événements tu choisit le DoWork et tu double clique dessus tu aura une fonction vierge tu ajoute ta boucle dedans et ton code
Code:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
while (true)//On retrouve ta boucle dans le DoWork (RunAsync)
{
BackgroundWorker backgroundWorker = (BackgroundWorker)sender;
//Fonction ici
Thread.Sleep(1000);//Pause du thread pendant 1 seconde
}
}

Ensuite dans Progress_Changed (techniquement t'en a pas besoins mais faut les 3 etat du bg_worker pour pas lever d'exception)

Code:
if (e.ProgressPercentage != 0)
{
UpdatePing(e.ProgressPercentage);
}

Il fonctionne avec les méthodes Async et Wait donc possibilité de faire des exceptions et de mettre en pause (une pause est égale a la fin de la boucle) Tu peux aussi tester les méthodes qui te retourne des erreurs ou faire des pause & start ;)
 

Lyrix

UX/UI Design
Ancien staff
Inscription
20 Août 2012
Messages
22 672
Réactions
8 160
Points
36 866
Salut,

J'ai déplacé http://reality-gaming.fr/attachments/deplacement-png.20319/ ta discussion en section Résolu http://reality-gaming.fr/attachments/verifier-png.20313/

Déplacement et résolution de ces topics , avec l'accord de l'auteur . :)

Bonne fin de soirée,
Lyrix
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut