Cum să plasați corect procesul pe pauză?
Există mai multe procese. Unele se rotesc continuu, iar altele după o iterație ar trebui oprite până la următoarea convorbire (pentru a nu pierde timp CPU). și mai multe procese pot necesita simultan un al treilea proces care trebuie început.
Am încercat să utilizez CV-ul de suspendare - dar CV-ul nu are niciun efect asupra procesului oprit.
Am încercat în acest proces după ce a sunat codul pentru a apela suspend (în Execute), dar într-un alt fir, când trebuie să pornesc procesul oprit din nou # xA0; apelați MyProcess.suspend pe ceea ce primesc o eroare despre faptul că receptorul a refuzat să accepte semnalul # xA0 (156). În plus, este foarte posibil ca mai multe procese să încerce simultan să revigoreze a treia. De asemenea, apelați MyProcess.suspend # xA0; și în interiorul mutexului, pare imposibil, pentru că acest lucru este garantat pentru a atârna procesul. Ar fi posibil ca procesul oprit să țină mutexul prins într-un alt proces (care îl lansează periodic). Dar cum pot elibera acest mutex prin cel de-al treilea proces?)
Singurul lucru care îți vine în minte este că până când nu suni ciclul pentru a întoarce alunecarea, procesul va bloca procesorul și o perioadă mare de alunecare va încetini foarte mult timpul de reacție.
În general, nu înțeleg cum să implementez acest lucru.
Pe scurt, dacă apelați suspendarea și opriți procesul, acesta nu pornește din nou (
deci sunt procese sau fire?
se pare al doilea, apoi folosiți o parte din WaitForXXX
si ce da WaitFor? el mi-a dat doar atârnă). în Executați o buclă infinită și dacă codul din Execute este întrerupt, atunci nu se mai repornește (și așteptați să se închidă numai când Execute ajunge la sfârșit).
În general, este un bug ce sau nu fac ceva greșit? motivul pentru care reluarea nu se repornește Executați nici în cazul în care este terminat, nici în cazul în care este suspendat = adevărat;
o grămadă de întrebări și nu o singură linie de cod.
Se simte ca o persoană nu a auzit despre evenimente. De ce "răsuciți procesul", dacă este mai logic să îl executați, dacă este necesar, când a apărut evenimentul corespunzător? Dacă nu, explicați în detaliu ce este necesar pentru "procesele" implicate.
Se simte ca o persoană nu a auzit despre evenimente. De ce "răsuciți procesul", dacă este mai logic să îl executați, dacă este necesar, când a apărut evenimentul corespunzător? Dacă nu, explicați în detaliu ce este necesar pentru "procesele" implicate.
> motivul pentru care CV-ul nu se repornește Executa nici în cazul în care este terminat, nici în cazul în care este suspendat = adevărat;
nu este pentru repornirea, ci pentru restaurarea unei lucrări suspendate.
P.S. aveți un bug în program. nici măcar în ceea ce nu funcționează, despre ce întrebi, dar în logica lucrării cu fire.
> Se simte ca o persoană nu a auzit despre evenimente. Pentru ce
> "răsuciți procesul", dacă este mai logic să îl executați dacă este necesar,
> # xA0; când a apărut evenimentul corespunzător? Dacă nu, atunci
> explicați în detaliu ce este necesar pentru "procesele" dvs.
> sunt activate.
Am obiecte dintr-o clasă la care de multe ori există un recurs, de dragul căruia am început-o # xA0; totul (a făcut-o tThread) și acum se rotește tot timpul și există mereu cereri. Ie sarcina este să vă asigurați că clientul care solicită datele nu așteaptă până când acest obiect nu generează ceva, ci pur și simplu duce rezultatul și merge mai departe, iar procesul actualizează rezultatul în fiecare secundă.
Dar există exact aceleași obiecte ale aceleiași clase, care nu sunt atât de solicitate în primul, și foarte repede se lucrează în cel de-al doilea, # xA0; în principiu, aș putea chiar să le rezolv în firul principal, dar ce fac cu o copie a clasei de flux? așa că încerc să le caut și într-un thread separat, dar nu să încarc procesorul numai la un apel. Și, pe de altă parte, există mai multă flexibilitate, dacă un obiect începe să primească mai multe cereri, atunci acesta poate fi transferat la un mod constant de funcționare.
bine, dar ceea ce nu am auzit ceva acolo) deci este o sectiune pentru incepatori - nu am auzit nimic de nimic)
ugh, nu procesul, dar fluxul)
> Dar ce fac cu o copie a clasei de flux?
de ce copiați. în fluxul aceluiași cod, precum și în afara acestuia, este posibil să provoace și, ca de obicei, procedura obișnuită.