Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ELHMAER'S THREADS CREATOR.


Information sur la source

Catégorie :Système Classé sous : elhamer, temary, finmars Niveau : Débutant Date de création : 06/04/2008 Date de mise à jour : 06/04/2008 21:39:19 Vu / téléchargé: 1 527 / 50

Note :
Aucune note

Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

Description

Ce programme permet de créer deux Sous processus differents;"addition" & "soustraction" entre deux nombres que vous désigne.


p.s: désolais; j'ai mis les commentaires en anglais.
 

Source

  • //---------------------------------------------------------------------------
  • #include <vcl.h>
  • #pragma hdrstop
  • #include "Ichi.h"
  • #include "Ni.h"
  • //---------------------------------------------------------------------------
  • #include "MyProject1.h"
  • #include "MyProject2.h"
  • #include "MyProject3.h"
  • //---------------------------------------------------------------------------
  • #pragma package(smart_init)
  • #pragma resource "*.dfm"
  • TForm2 *Form2;
  • Thread1 *leftTHR;
  • Thread2 *rightTHR;
  • //---------------------------------------------------------------------------
  • int StopedR=0,StopedL=0,do_it_again=0;
  • //---------------------------------------------------------------------------
  • __fastcall TForm2::TForm2(TComponent* Owner)
  • : TForm(Owner)
  • {
  • Label5->Caption="Addition";
  • Label6->Caption="Subtraction";
  • }
  • //---------------------------------------------------------------------------
  • void __fastcall TForm2::Button1Click(TObject *Sender)
  • {
  • Form2->Hide();
  • Form3->Show();
  • }
  • //---------------------------------------------------------------------------
  • //int p;
  • void __fastcall TForm2::Timer1Timer(TObject *Sender)
  • {
  • Label2->Caption="This programme couldn't work ";
  • Label3->Caption="both in a MONO-CPU computer ";
  • Label4->Caption="or in more than two CPU-computer!";
  • /*p++;
  • Form2->ClientHeight=10*p;
  • Form2->ClientWidth=10*p;
  • if((Form2->ClientWidth==5)&&(Form2->ClientHeight==5))
  • Timer1->Enabled=false;*/
  • }
  • //---------------------------------------------------------------------------
  • void __fastcall TForm2::Button2Click(TObject *Sender)
  • {
  • if((Form2->Edit1->Text==1)&&(Form2->Edit2->Text==1)&&(do_it_again==0))
  • {
  • MessageBox(NULL,"You Didn't Give Any Number!",NULL, MB_OK|MB_ICONSTOP);
  • ShowMessage("Anyway the '1' will be the default number.");
  • do_it_again=1;
  • }
  • leftTHR = new Thread1(false);
  • rightTHR = new Thread2(false);
  • // To Resume the two threads from the begining
  • // we should write:
  • // leftTHR = new Thread1(true);
  • // rightTHR = new Thread2(true);
  • }
  • //---------------------------------------------------------------------------
  • void __fastcall TForm2::N1Click(TObject *Sender)
  • {
  • Form3->Show();
  • Form2->Hide();
  • }
  • //---------------------------------------------------------------------------
  • void __fastcall TForm2::Button4Click(TObject *Sender)
  • {
  • if(StopedR==0)
  • {
  • rightTHR->Suspend();//Thread is stoped now.
  • Button4->Caption="Resume";
  • StopedR=1;
  • }
  • else
  • {
  • rightTHR->Resume();
  • Button4->Caption="Suspend";
  • //Resume means run again the thread after Suspension.
  • StopedR=0;
  • }
  • }
  • //---------------------------------------------------------------------------
  • void __fastcall TForm2::Button3Click(TObject *Sender)
  • {
  • if(StopedL==0)
  • {
  • leftTHR->Suspend();//Thread is stoped now.
  • Button3->Caption="Resume";
  • StopedL=1;
  • }
  • else
  • {
  • leftTHR->Resume();
  • Button3->Caption="Suspend";
  • //Resume means run again the thread after Suspension.
  • StopedL=0;
  • }
  • }
  • //---------------------------------------------------------------------------
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Ichi.h"
#include "Ni.h"
//---------------------------------------------------------------------------
#include "MyProject1.h"
#include "MyProject2.h"
#include "MyProject3.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
Thread1 *leftTHR;
Thread2 *rightTHR;
//---------------------------------------------------------------------------
int StopedR=0,StopedL=0,do_it_again=0;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
        : TForm(Owner)
{
Label5->Caption="Addition";
Label6->Caption="Subtraction";
}
//---------------------------------------------------------------------------

void __fastcall TForm2::Button1Click(TObject *Sender)
{
Form2->Hide();
Form3->Show();

}
//---------------------------------------------------------------------------
//int p;
void __fastcall TForm2::Timer1Timer(TObject *Sender)
{
Label2->Caption="This programme couldn't work ";
Label3->Caption="both in a MONO-CPU computer ";
Label4->Caption="or in more than two CPU-computer!";

/*p++;
Form2->ClientHeight=10*p;
Form2->ClientWidth=10*p;
if((Form2->ClientWidth==5)&&(Form2->ClientHeight==5))
   Timer1->Enabled=false;*/


}
//---------------------------------------------------------------------------

void __fastcall TForm2::Button2Click(TObject *Sender)
{
if((Form2->Edit1->Text==1)&&(Form2->Edit2->Text==1)&&(do_it_again==0))
{
MessageBox(NULL,"You Didn't Give Any Number!",NULL, MB_OK|MB_ICONSTOP);
ShowMessage("Anyway the '1' will be the default number.");
do_it_again=1;
}
     leftTHR = new Thread1(false);
     rightTHR = new Thread2(false);
     // To Resume the two threads from the begining
    //  we should write:
   //   leftTHR = new Thread1(true);
  //    rightTHR = new Thread2(true);


}
//---------------------------------------------------------------------------
void __fastcall TForm2::N1Click(TObject *Sender)
{
Form3->Show();
Form2->Hide();
}
//---------------------------------------------------------------------------



void __fastcall TForm2::Button4Click(TObject *Sender)
{
if(StopedR==0)
{
rightTHR->Suspend();//Thread is stoped now.
Button4->Caption="Resume";
StopedR=1;
}
else
{
rightTHR->Resume();
Button4->Caption="Suspend";
//Resume means run again the thread after Suspension.
StopedR=0;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button3Click(TObject *Sender)
{
if(StopedL==0)
{
leftTHR->Suspend();//Thread is stoped now.
Button3->Caption="Resume";
StopedL=1;
}
else
{
leftTHR->Resume();
Button3->Caption="Suspend";
//Resume means run again the thread after Suspension.
StopedL=0;
}
}
//---------------------------------------------------------------------------

Conclusion

Voilà C mon premier Project Ici, si vous avez des quetions ou des commantaires..je suis là.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   yushi_ok
    • ElhamerThreadCreator.~bprTélécharger ce fichier [Réservé aux membres club]4 469 octets
    • ElhamerThreadCreator.bprTélécharger ce fichier [Réservé aux membres club]4 469 octets
    • ElhamerThreadCreator.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 284 octets
    • ElhamerThreadCreator.objTélécharger ce fichier [Réservé aux membres club]18 106 octets
    • ElhamerThreadCreator.resTélécharger ce fichier [Réservé aux membres club]876 octets
    • ElhamerThreadCreator.tdsTélécharger ce fichier [Réservé aux membres club]2 031 616 octets
    • Ichi.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier2 217 octets
    • Ichi.hTélécharger ce fichier [Réservé aux membres club]Voir ce fichier658 octets
    • Ichi.objTélécharger ce fichier [Réservé aux membres club]24 721 octets
    • MyProject.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier7 556 octets
    • MyProject.dfmTélécharger ce fichier [Réservé aux membres club]5 007 octets
    • MyProject.hTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 663 octets
    • MyProject1.~cppTélécharger ce fichier [Réservé aux membres club]7 921 octets
    • MyProject1.~ddpTélécharger ce fichier [Réservé aux membres club]51 octets
    • MyProject1.~dfmTélécharger ce fichier [Réservé aux membres club]5 715 octets
    • MyProject1.~hTélécharger ce fichier [Réservé aux membres club]1 796 octets
    • MyProject1.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier7 921 octets
    • MyProject1.ddpTélécharger ce fichier [Réservé aux membres club]51 octets
    • MyProject1.dfmTélécharger ce fichier [Réservé aux membres club]5 717 octets
    • MyProject1.hTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 796 octets
    • MyProject1.objTélécharger ce fichier [Réservé aux membres club]50 891 octets
    • MyProject2.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier3 069 octets
    • MyProject2.dfmTélécharger ce fichier [Réservé aux membres club]117 524 octets
    • MyProject2.hTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 766 octets
    • MyProject2.objTélécharger ce fichier [Réservé aux membres club]48 653 octets
    • MyProject3.~dfmTélécharger ce fichier [Réservé aux membres club]82 574 octets
    • MyProject3.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier776 octets
    • MyProject3.ddpTélécharger ce fichier [Réservé aux membres club]51 octets
    • MyProject3.dfmTélécharger ce fichier [Réservé aux membres club]82 569 octets
    • MyProject3.hTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 141 octets
    • MyProject3.objTélécharger ce fichier [Réservé aux membres club]41 318 octets
    • Ni.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier2 071 octets
    • Ni.hTélécharger ce fichier [Réservé aux membres club]Voir ce fichier654 octets
    • Ni.objTélécharger ce fichier [Réservé aux membres club]24 439 octets
    • Project2.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 284 octets

Télécharger le zip

Historique

06 avril 2008 16:37:47 :
la conclusion

Commentaires et avis

signaler à un administrateur
Commentaire de BruNews le 06/04/2008 19:18:24 administrateur CS

La source se résume à:
leftTHR = new Thread1(false);
leftTHR->Suspend();
leftTHR->Resume();

bof bof l'utilité didactique.

signaler à un administrateur
Commentaire de temary le 07/04/2008 10:17:39

ce n'est rien q'une introduction pour ceux qui ne savent pas  créer des Threads sous builder ..
alors dit, si j'ai ajouté la priorité;est ce que ça va s'améliorer ??

signaler à un administrateur
Commentaire de BruNews le 07/04/2008 10:31:18 administrateur CS

Un ajout améliorera certainement l'intérêt de cette source.
Merci d'avoir réagi.

signaler à un administrateur
Commentaire de temary le 07/04/2008 11:08:18

petite question; est ce que tu considére la priorité comme  étant une chose importante !!

signaler à un administrateur
Commentaire de BruNews le 07/04/2008 11:16:28 administrateur CS

Ce n'est pas obligatoire et il vaut mieux laisser l'OS planifier les threads dans la plupart des cas, cependant la planification zxplicite peut être utile.
Tout dépend de ce que doit faire le prog, on ne peut jamais généraliser.

signaler à un administrateur
Commentaire de temary le 07/04/2008 13:52:03

en tous les cas merci pour votre commentaires,ça ;m'a fait plaisir
merci encore.

signaler à un administrateur
Commentaire de omnia le 09/04/2008 17:48:08

Salut,  

ce qui serait bien c'est aussi de ne pas poster les .obj et fichiers temporaires des projets :)

enjoy coding

signaler à un administrateur
Commentaire de temary le 17/04/2008 13:52:56

aah, j'ai pas fait attention

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,52 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.