Vai al contenuto
PLC Forum


C++ E Funzione Sleep


smsmsms

Messaggi consigliati

Ciao a tutti.

DUnque, non ho mai usato il C++ (Visual studio 6 enterprise) e devo fare una piccola modifica ad un

programma già esistente. Questo il codice:

void test::gotest()

{

double a, b, c;

while (run)

{

// codice vario ...

a = b + c;

Sleep(a);

try

{

MyFunction();

}

catch(...)

{

}

}

}

Ecco il dubbio <_<;) :

siccome lo Sleep crea una attesama questa attesa è variabile (data dal calcolo di b+c) come devo interpretare il codice? Es.

Prima esecuzione b=10000 c=50000 --> a=60000 quindi ho uno sleep pari ad un minuto. a questo punto si "interrompe" la scansione del codice fino al termine dello sleep oppure la scansione successiva andrò a reimpostare i valori b, c e quindi a (cioè il tempo dello sleep) PRIMA che lo sleep precedente sia terminato???

Spero di essermi spiegato.

Grazie per qualsiasi dritta

Link al commento
Condividi su altri siti


Salve smsmsms,

Dunque,

La function Sleep suspende l'essecuzione del corrente thread per un specificato

intervallo di tempo,quindi.

VOID Sleep(

DWORD dwMilliseconds // sleep time in milliseconds

);

dwMilliseconds=1; // 1 mSec.

dwMilliseconds=1000; // 1 Sec.

dwMilliseconds=60000; // 60 Sec

Quando Sleep ferma solo l'essecuzione del thread in corso, tutti gli altri thread in run

time con il SO continuano a girare nel ciclo del main system nel fore o background.

Durante lo sleep, nessun statement apparteniente al thread chiamante viene elaborato.

Allora,

while (run)

{

// codice vario ...

a = b + c;

Sleep(a);

try

{

MyFunction();

}

catch(...)

{

}

}

Link al commento
Condividi su altri siti

Ok, grazie delle info. Infatti il mio dubbio era se

la funzione sleep funzionasse come un timer in vb oppure no.

Grazie ed a buon rendere

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...