Bu Program C++ Builder 6 ile uyumludur.
AÇIKLAMA
Bu program verilen görevi koşulacak processlere(yani küçük işlem parçacıklarına) böler.
Thread isimli klasör icinde bu Thread.exe'nin projesi bulunmaktadir. Ve verilen problem kosulacak process sayısına bolunerek işlem belirli parçalara ayrılarak hız kazanılır. Program koşarken görev yöneticisi işlem sekmesinde koşan threadleri gorebilirsiniz.
Thread programı argüman aldığından dolayı o projeyi tek başına koşarsanız hata mesajı alacaksınız.
Ama ana program icinden argüman'lı olarak çağrıldığından dolayı sorun olmayacaktır.
Programın Tamamını Aşağıdaki Linkten İndirebilirsiniz
Linki Görebilmeniz İçin Üye Olmanız Gerekmektedir...
Üye Kayıt
Program Kodu:
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "stdio.h" #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { if(Edit1->Text!="") { Label3->Caption=""; Label7->Caption=""; Label8->Caption=""; ListBox1->Items->Clear(); ListBox2->Items->Clear(); FILE *dosya; int p=StrToInt(InputBox("SINIR DEĞERİ","Bulunacak Mükemmel Sayılar İçin Sınır Değeri Girin","")); Label7->Caption=time1; int bolum=p/StrToInt(Edit1->Text); for(int i=1;i<=StrToInt(Edit1->Text);i++) { String x="Thread.exe "; x+=bolum*(i-1); x+=" "; x+=bolum*i; ListBox1->Items->Add(bolum*i); WinExec(x.c_str(),NULL); } bool durum=true; while(durum) { int tut=ListBox1->Items->Count; int yep=0; for(int i=0;i<tut;i++) { if(FileExists(ListBox1->Items->Strings[i])) yep++; } if(yep==tut) durum=false; } Label8->Caption=time2; TDateTime x=time2-time1; Label3->Caption=x; ListBox2->Items->LoadFromFile("sayilar.txt"); DeleteFile("sayilar.txt"); int tut=ListBox1->Items->Count; for(int i=0;i<tut;i++) DeleteFile(ListBox1->Items->Strings[i]); } else Application->MessageBoxA("Koşacak Process Sayısını Giriniz","UYARI",MB_ICONINFORMATION); } //---------------------------------------------------------------------------