Titolo: Uso dei semafori
Categoria: Codice |
|
Ultimo Aggiornamento: 24/04/05 |
Quando si vuole essere certi che una certa operazione sia eseguita senza contemporaneità è possibile usare la funzione Semaphore.
Questa funziona permette di testare se un semaforo esiste già (ritorna TRUE) oppure lo crea (e ritorna FALSE). Eseguite le sue operazioni lo si cancella con Clear Semaphore.
Ecco un esempio di codice per usarlo:
If (
Semaphore("ModificaDelListinoPrezzi")) ` Provo a creare il semaforo
ALERT("Qualcun altro sta già modificando i prezzi. Riprova più tardi.")
Else ` Metti qui il codice che devi eseguire
CLEAR SEMAPHORE("ModificaDelListinoPrezzi")) ` Non mi serve più
End ifOppure per una modifica che coinvolge operazioni di breve durata, faccio aspettare la mia richiesta finché non si libera il posto:
C_Boolean($Fatto_b)
$Fatto_b:=
FalseWhile ($Not($Fatto_b))
If (
Semaphore("RegistroNumFattura"))
IDLE Else ' Metti qui il codice che devi eseguire
CLEAR SEMAPHORE("RegistroNumFattura")
$Fatto_b:=
True End ifEnd while
Inviato da: Umberto Migliore |
|
Visite: 11874 |
Se accedi con utente e password, puoi aggiungere dei commenti.