|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: May 2005
Messaggi: 10
|
[C++] Quante istanze in esecuzione ?
Sto sviluppando in C++ Builder su windows un applicativo per l'inserimento dati in un db.
Ho la necessità di sapere quante istanze del mio programma sono già in esecuzione, per evitare che un numero troppo elevato di miei processi "ingolfi" il pc in cui sono e/o il server su cui c'è il db. Qualcuno conosce una qualche primitiva di sistema o API che interrogata mi fornisca il numero di processi in esecuzione (o in memoria), partendo ad esempio dal nome dell'eseguibile che mi interessa ? Ovviamente mi interessa anche un qualsiasi eventuale meccanismo da voi sperimentato che non sia una dll di sistema. Grazie in anticipo per ogni suggerimento possibile. Ultima modifica di twbrother : 16-02-2010 alle 10:16. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Aug 2008
Messaggi: 382
|
potresti mettere a monte un exe che tiene traccia di quanti processi sono stati lanciati, delegando a questo programmino il lancio delle istanze della tua applicazione e le politiche per notificare l'utente dell'eccessivo numero di istanze esistenti
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Dovrebbe bastare una named mutex: http://www.ubercode.com/write-progra...ndows-api.html
Ultima modifica di cionci : 16-02-2010 alle 12:30. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
é piu adatto un semaforo che un mutex: se vuoi avviare al massimo N processi, ogni processo deve cercare di bloccare un semaforo con conteggio massimo pari ad N e se non ci riesce termina subito. un mutex equivale ad un semaforo binario, cioé con conteggio massimo pari ad 1, quindi é adatto quando devi avviare al massimo una sola istanza del programma.
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sì, vero, se vuoi un massimo di tot applicazioni aperte un named semaphore, se ne vuoi al massimo una sola una named mutex. L'utilizzo in ogni caso è molto simile al codice che ti ho postato. Guarda CreateSemaphore come API.
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:38.