Caracteristici ale fluxului de dezvoltare - surse delphi faq

Sistemele de operare moderne pentru Windows 32 nu numai că oferă multi-tasking, adică, posibilitatea de funcționare în paralel a mai multor programe, dar, de asemenea, multi-threading, atunci când un program este organizat de mai multe piese concurente (fire de), fiecare dintre care concurează cu alte fire pentru cea mai importantă resursă .. - timp CPU. Într-un mod multifir, timpul CPU este alocat în porții mici (cuante) pentru fiecare proces, după care timp de control se trece la un alt flux, și așa mai departe. E. Până fluxurile nu au încheiat încă. La orice program care rulează organizat cel puțin un flux pentru a programa comenzi. Cu facilități de clasă TThread program poate crea fire suplimentare pentru a efectua o operație de fundal (de exemplu, procesor de text Word creează fluxuri suplimentare pentru a verifica ortografia, paginația, imprimarea unui document, și așa mai departe. N.).

Pentru a crea un flux de programe suplimentare Delphi este un modul special de debit în magazia este desemnat pictograma Subiect Obiecll). La selectarea acestui modul, Delphi solicită numele clasei, care este un copil al TThread clasa fundamentală. moștenire necesitate datorită faptului că clasa de TThread cuprinde o metodă abstractă Executare, care, de fapt, trebuie să se efectueze în noul flux, și care, prin urmare, trebuie să fie suprapuse în urmași.

De exemplu, (cu traducere corespunzătoare):

fluxul de program nu diferă de programare programul obișnuit cu o singură excepție importantă: fluxul nu trebuie să utilizeze metodele și proprietățile componentelor Tovarăși vizuale din care conduc la o schimbare a aspectului programului Mai precis, se poate face acest lucru numai prin referire la Synchronize specială metoda, prin care sincronizarea executarea programului principal cu fluxul de flux suplimentar.

Setați proprietatea SpinEditl.Value 3nachenie 2, setați proprietatea Gaugel. Valoarea Kind gkPie, Gaugel. BorderStyle-bsNone și Button1.Caption - 'Piața'.

În forme spațiu liber pune componenta TMemo și setați-l la valoarea unei proprietăți alSlient Align și proprietatea Denumire- „mmOutput“.

Faceți dublu clic pe butonul Button1i codul scrie ca aceasta:

Selectați pictograma modulului de flux în fereastra Repository Delphi și lăsați numele clasei succesor Subiect ThreadDemo. Textul final al modulului de curgere este prezentată mai jos.

Dacă rulați programul într-un mod pregătit, nimic nu se va întâmpla - nu am început încă nici firul. Pentru a face acest lucru, adăugați modulul utilizează clauza de link-ul Unit1 Unit1 principală formă deschisă în fereastra de inspector o listă de componente, selectați componenta Form1 și pagina de evenimente, dublu-clic pe OnActivate de proprietate, pentru a crea un handler pentru acel eveniment:

La fel ca și care se execută un flux suplimentar - vom iniția TDemo obiect, care trece lui Konsruktor ThreadDemo.Create

singura opțiune este False (acest parametru indică dacă firul nou creat pentru a „somn“ trebuie să - Adevărat sau el trebuie să înceapă lucrul imediat - Fals). Programul poate, în orice moment, să suspende fluxul de lucru prin atribuirea proprietăților sale suspendate la True, și continuă să ruleze, setați această proprietate la False. Notă - Execută metoda de curgere impusă în secțiunea protejată și, prin urmare, nu este disponibil de la unitatea principală. Efectuarea acestei metode începe suspendate automat imediat ce proprietatea va lua la False.