[quick basic] lancer deux fonctions EN MEME TEMPS

lancer deux fonctions EN MEME TEMPS [quick basic] - Programmation

Marsh Posté le 06-06-2001 à 20:29:12    

tt est ds le titre,comment?


---------------
Do you serve a purpose,Or purposely serve?
Reply

Marsh Posté le 06-06-2001 à 20:29:12   

Reply

Marsh Posté le 06-06-2001 à 23:08:56    

alors tu vois AUCUNE IDEE etant donne que je fais plutot du c moa =)
 
 
--------\ /----------
-------(   )-----------
--------/\-----------------
 
the real shadok

Reply

Marsh Posté le 07-06-2001 à 07:10:34    

orazur?t le meme ke celui de or-azur.fr.st?
enfin... ca mavance pa bocou


---------------
Do you serve a purpose,Or purposely serve?
Reply

Marsh Posté le 07-06-2001 à 08:40:20    

si t'es sous unix, alors tu fais un fork() et tu lances dans le processus père et le processus fils la même fonction
je sais pas sous windows, fork() existe, mais je crois que oui...

Reply

Marsh Posté le 07-06-2001 à 08:41:08    

si t'as besoin de faire communiquer le père et le fils ensemble, tu utilise un tube, créé via la fonction pipe()

Reply

Marsh Posté le 07-06-2001 à 08:57:16    

Le DOS est monotâche : une seule application tourne.
 
Sous Windows 3.1, si on ouvre deux sessions DOS (c'est très faisable sous OS/2 4 (qui d'autre que moi l'tilise ??), sous Windows faut voir), on peut lancer deux applications.
 
Si on veut faire tourner deux calculs en PARALLELE sous DOS, cela m'étonnerait que ce soit possible.

Reply

Marsh Posté le 07-06-2001 à 17:49:01    

je suis pas sous dos...


---------------
Do you serve a purpose,Or purposely serve?
Reply

Marsh Posté le 07-06-2001 à 17:57:38    

je vois rien nulle part ki parle de pipe ou de fork...


---------------
Do you serve a purpose,Or purposely serve?
Reply

Marsh Posté le 07-06-2001 à 18:54:43    

En quick basic, c'est que du séquentiel donc tu peux pas exécuter 2 fonctions en même temps

Reply

Marsh Posté le 07-06-2001 à 20:56:56    

eh ba ca simplifie... t sur?


---------------
Do you serve a purpose,Or purposely serve?
Reply

Marsh Posté le 07-06-2001 à 20:56:56   

Reply

Marsh Posté le 08-06-2001 à 14:28:07    

Quick Basic, c'est du DOS.  
Même lancé sous Windows (ou autre), il génère un fichier EXE DOS, qui peut être lancé sous Windows (en tant que programme DOS !).
 
Pour le transcrire sous VisualBasic, il faut créer une IHM (interface Homme/Machine : feuilles, boutons, menus, ..) puis récupérer le code QB pour l'adapter (tout passe sauf les accès bas niveau, les interruptions, les écritures directes en mémoire vidéo, etc..).
 
Windows "grand public" n'étant pas multitâche, si deux versions du même programme tournent, le temps CPU leur sera attribué à tour de rôle (saucissonné).

Reply

Marsh Posté le 08-06-2001 à 17:53:00    

"Windows "grand public" n'étant pas multitâche"
:??:
peux tu préciser ?
"si deux versions du même programme tournent, le temps CPU leur sera attribué à tour de rôle (saucissonné)."
c'est pas la définition du multitache ca ? :??:


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 08-06-2001 à 17:55:36    

j'oubliais ... :D
djfm : pourquoi as-tu besoin de lancer 2 fonction en meme temps ?
parseke y'a surement une autre manière de faire ... ;)


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 08-06-2001 à 18:10:54    

HelloWorld a écrit a écrit :

"Windows "grand public" n'étant pas multitâche"  
:??:  
peux tu préciser ?  
"si deux versions du même programme tournent, le temps CPU leur sera attribué à tour de rôle (saucissonné)."  
c'est pas la définition du multitache ca ? :??:




je pense qu'il a confondu multitâche et multiprocesseur
 
Les OS simulent visuellement le multitasking en attribuant des courts instants de processeur aux différents exécutables, ce qui fait que deux codes ne peuvent pas tourner exactement au même momment. Si tu as deux (ou plus) procos, c'est théoriquement possible. Le problème c'est qu'il y a le système à faire tourner aussi... donc -> choux.
 
Windows 9X ne gère qu'un proco, NT et 2K peuvent en gérer 2

Reply

Marsh Posté le 08-06-2001 à 18:26:45    

je fais un casse briques et g besoin de dune fonction ki fait bouger la raquette et dune autre pour le reste....pour linstant ca rame un peu parceque tant que la fonction qui fait bouger la raquette marche, la balle ne bouge plus.....
au fait, en VB y a les equivalents des fonctions screen?


---------------
Do you serve a purpose,Or purposely serve?
Reply

Marsh Posté le 08-06-2001 à 18:29:59    

soit t'as une fct° qui fait tout bouger à tour de rôle, soit tu fais deux threads. (mais alors là, bonjour l'angoisse pour les faire communiquer !)

Reply

Marsh Posté le 12-06-2001 à 09:33:00    

Ne serait-il pas possible d'utilier un Timer pour faire bouger la balle ? En fixant un intervalle réduit (on ne peut en fait descendre à moins de 1/18,6 seconde (top d'horloge)) bien que le paramètre du Timer semble dire le contraire (sous VB3 du moins : 10 millisecondes sont en fait 65, 20 ms, 30 ms, 40 ms, 50ms aussi car c'est basé sur les tops de l'horloge).
 
Si à chaque appel du Timer la position de la balle est revue, cela serait plus "fluide". Le mouvement de souris déplace les raquettes, l'horloge fait bouger le projectile.
Si cela ne suffit pas (joueur trop rapide, ça ce complique).
---------------------------------------------
 
Au sujet de multitâche, je voulais dire que si on fait une maladresse (boucle infinie de calcul n'accèdant pas aus messages de WIndows)même sous Win95, on perd la main et l'horloge est figée. Reset indispensable.
Un "vrai" multitâche devrait donner à chaque application un peu de temps et passer au suivant à tour de rôle. Ce n'est pas à l'application de monopoliser le temps CPU de sa propre initiative. On devrait pouvoir continuer à travailler si un processus voisin tourne en rond.
Je vais essayer sous Win NT vérifier si c'est mieux.
 
Le vrai multitâche, je pense qu'il se fait sur autant de machînes que de tâches à réaliser (! Mais comme je ne suis qu'un amateur, c'est une vue de l'esprit).

Reply

Marsh Posté le 12-06-2001 à 12:47:56    

tu peux essayer, si t'es motivé, de détourner l'interuption DOS du clavier. En y fouttant en "surcouche" le code nécessaire à la gestion de ta racket, celui-ci sera executé tout seul des que le mec il appuye sur une touche du clavier
c'est comme ca que l'on procedais "a l'epoque" pour gerer la souris, pour qu'elle ait un deplacement fluide
tu as un exemple
www.chez.com/pageasm/tutd/othello/othello4.htm#3
 
faire executer tes 2 fonctions en meme temps n'arrangera pas grand chose de toute facon : si ca rame avec une pour ta balle, ca va encore plus ramer avec les 2, pour la balle et la racket !
 
à mon avis, il faut chercher à optimiser un peu ton code de la racket ;)
 
et comment tu procede pour dessiner ? tu synchronise avec le retour de balayage ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed