Sviluppo4d.it
Sito indipendente di informazioni tecniche per sviluppatori 4th Dimension italiani  

Sviluppatori 4D

Utility 4D

Risorse 4D



4d logo
Naviga: Prev Next

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 if

Oppure 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:=False
While ($Not($Fatto_b))
  If (Semaphore("RegistroNumFattura"))
    IDLE
  Else
    ' Metti qui il codice che devi eseguire
    CLEAR SEMAPHORE("RegistroNumFattura")
    $Fatto_b:=True
  End if
End while



Inviato da: Umberto Migliore Visite: 11706

Se accedi con utente e password, puoi aggiungere dei commenti.


Accesso

User:
Pass: Accedi

Cerca

Se non trovi le informazioni che cerchi scrivi a aiuto@sviluppo4d.it

4D Principali

4D Discussioni

Faq random


Crediti

Dominio registrato da ZetaNet
Sito realizzato da Nexus srl
4D SQL 11.9.0 offerto da 4D & Italsoftware
Icone di FAMFAMFAM
Moderato da Umberto Migliore
303 utenti registrati

Pagina servita il 28/03/24 alle 13:28:09 Valid HTML 4.01! Valid CSS!

Mutuo Facile, iDigitalScout, iDigitalTags e altre app di Nexid srl per iPhone e iPad

Cidroid, distributore italiano lettori barcode per IOS Apple iPhone, iPod, iPad