Génial ! J'ai prévu d'utiliser plusieurs thread aussi. Là je viens de terminer mon implémentation initial et je refactorise pour que ce soit propre et utilisable (contrôle de caméra par exemple). Du coup quel est le gain avec 1 vs plusieurs Threads avec le même nombre de step?
-
-
En réponse à @cyannick
En fait, tu divise le temps de calcul du rendu par le nombre de threads. Voici 3 rendus en step 50 avec 1, 4 et 9 threads.pic.twitter.com/exhlbHxasE
2 réponses 1 Retweet 1 j'aime -
En réponse à @julien_plateau
Mais pas possible pour le moment avec MonoGame 2/2
1 réponse 0 Retweet 0 j'aime -
En réponse à @cyannick
En effet, c'est dommage de pas profiter de la carte graphique :). Par contre, fait attention au Random, il n'est pas thread safe. J'ai du en en créer un par thread, sinon j'avais que 0 en résultat de NextDoubles.
2 réponses 0 Retweet 0 j'aime -
En réponse à @julien_plateau
Tu utilise ThreadPool pour ton multithreading? Car j'ai un truc super bizarre, ça marche 2/3 fois et après j'ai deux threads qui restent bloqués et s'arrêtent. Du coup impossible de continuer dans le thread principal :/
1 réponse 0 Retweet 0 j'aime -
En réponse à @cyannick
Non juste Thread comme tu as fait. Par contre j'ai eu le même soucis et je crois bien que c'est à cause du Random que les threads ne fonctionnent plus. Tu en as créé un par thread ?
1 réponse 0 Retweet 0 j'aime -
En réponse à @julien_plateau
J'utilise un ThreadPool et oui pour le test je fais un new Random à chaque fois que UpdatePixel est appelé (bourrin…), mais ça corrige pas mon soucis. Du coup tu as un tableau de Thread ? J'ai essayé mais j'ai eu pas mal de soucis :/
1 réponse 0 Retweet 0 j'aime -
En réponse à @cyannick
Voici mon code : https://pastebin.com/YL5ti69Z https://pastebin.com/bjdKJtP3 , C'est pas super propre mais tu verras mieux.
1 réponse 0 Retweet 0 j'aime -
En réponse à @julien_plateau
C'est une bonne approche ! J'ai tenté d'utiliser le ThreadPool https://pastebin.com/wzPZKzxh mais du coup ça marche sur quelques frames (et c'est super rapide), mais après j'ai quelques threads qui bloquent :/ Après je ne suis pas expert en MT.
1 réponse 0 Retweet 0 j'aime -
En réponse à @cyannick
Le QueueUserWorkItem fonctionne comme le async, il attend qu'un thread soit dispo pour exécuter le code, alors qu'un thread basique est exécuté au Start dans tous les cas
1 réponse 0 Retweet 0 j'aime
Je vais étudier ton implémentation et implémenter ma version. Merci, je te citerais dans le commit ;)
Le chargement semble prendre du temps.
Twitter est peut-être en surcapacité ou rencontre momentanément un incident. Réessayez ou rendez-vous sur la page Twitter Status pour plus d'informations.