Co radzicie, teraz muszę odpocząć ale zastawiam się nad utworzeniem procesu, albo kilku by każdy zajmował ok 700MB, by osiągnąć stan ok 70 - 80 % zajętości pamięci.
To wÄ…tek wykonujÄ…cy zapychanie:
- Kod: Zaznacz cały
// Trzeci wątek dla pamięci -----------------------------------------------
int __fastcall Obciaz3(Pointer Parameter){
using std::string;
string zapelniacz = "To jest teks to zapelnienia pamieci", kosz, kosz1, kosz2;
int straznik = 0;
Form2->Ram->Visible = true;
TMemoryStatus *MS = new TMemoryStatus;
MS->dwLength = sizeof(MEMORYSTATUS); // tego można nie stosować.
GlobalMemoryStatus(MS);
Form2->Caption = FormatFloat("Całkowita pamięć: #,### KB", MS->dwTotalPhys / 1024);
//delete MS;
do{
straznik = MS->dwMemoryLoad;
GlobalMemoryStatus(MS);
if(straznik < 50)
kosz += zapelniacz;
if(straznik >= 50 || straznik < 60)
kosz1 += zapelniacz;
if(straznik >= 60)
kosz2 += zapelniacz;
Form2->Ram->Caption = "Obciążenie pamięci: " + IntToStr(MS->dwMemoryLoad) + " %";
Application->ProcessMessages();
if(MS->dwAvailPageFile < 102400000)
break;
}while(straznik < 77);
delete MS;
ExitThread(GetExitCodeThread(Obciaz3, NULL)); // usunięcie wątku z pamięci,
//od tego momentu wątku nie można już wstrzymać.
}
//---------------------------------------------------------------------------
PS jeszcze mam takie pytanie bo trochę to dla mnie nie zrozumiałe, jeżeli zahaszuje tą linijkę kodu:
- Kod: Zaznacz cały
//ExitThread(GetExitCodeThread(Obciaz3, NULL));
system operacyjny po zakończeniu wątku zwalnia pamięć, jeśli zostawię jak jest w kodzie tego nie zrobi, dlaczego ? Przecież powinno być na odwrót ?!?!