|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2003
Città: Angri - Milano
Messaggi: 358
|
WaitForMultipleObjects
ciao mi potete dare una mano,
sto provando ad usare la "WaitForMultipleObjects" per attendere l'evento di scrittura su di un socket faccio cosi ma la WaitForMultipleObjects nonsi ferma e cicla sempre //array di handle dell'evento HANDLE hnd_eventsck[2]; //creo gli eventi hnd_eventsck[0] = WSACreateEvent(); hnd_eventsck[1] = CreateEvent(NULL,true,false,NULL); //associo a questo evento la scrittura sul socket WSAEventSelect(s_client,hnd_eventsck[0],FD_WRITE); while(true){ //attendo che si verifichi un evento switch (WaitForMultipleObjects(2, hnd_eventsck, FALSE, INFINITE)){ case WAIT_OBJECT_0: //evento 1 break; case WAIT_OBJECT_0+1: //evento 2 break; } } ciao zelig
__________________
Siamo eredi del nostro passato, il futuro è l'unica possibilità di rinascita. XBOXGamerTAG:nightwish78 Dell Studio XPS 16 (1645)-FullHD RGBLed-Intel Core i7 820QM-4GB DDR3-ATI HD 4670 1GB DDR3-HD 320GB 7200 rpm flickr |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Come mai usi 2 eventi ?
Poi perchè non usi WSAWaitForMultipleEvents ? |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Sep 2003
Città: Angri - Milano
Messaggi: 358
|
ciao
ne uso due perchè un altro mi serve in seguito da richiamare com PulseEvent(), ma non l'ho ancora implementato ho gia provato la WSAWaitForMultipleEvents , ma non si ferma ugualmente
__________________
Siamo eredi del nostro passato, il futuro è l'unica possibilità di rinascita. XBOXGamerTAG:nightwish78 Dell Studio XPS 16 (1645)-FullHD RGBLed-Intel Core i7 820QM-4GB DDR3-ATI HD 4670 1GB DDR3-HD 320GB 7200 rpm flickr |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Definisci gli eventi separati...
Uno usalo con WSAWait... e l'atro con Wait... |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Sep 2003
Città: Angri - Milano
Messaggi: 358
|
ma poi dovrei usare il WaitForSingleObject?
ma poi un non bloccherebbe l'esecuzione dell'altro? mi faresti un esempio?
__________________
Siamo eredi del nostro passato, il futuro è l'unica possibilità di rinascita. XBOXGamerTAG:nightwish78 Dell Studio XPS 16 (1645)-FullHD RGBLed-Intel Core i7 820QM-4GB DDR3-ATI HD 4670 1GB DDR3-HD 320GB 7200 rpm flickr |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Fammi capire ma per te o l'uno o l'altro evento vanno bene comunque ?
Non hai una sequenza in cui si verificano ? Altra cosa, non puoi usare la select per verificare l'arrivo di dati e fare un WaitForSingleObject con un timer finito sull'altro evento ? Sinceramente non ho mai usato i WSAEvent, ma ho sempre usato la programmazione socket standard con la select per effettuare recv non bloccanti... Ultima modifica di cionci : 02-10-2004 alle 00:48. |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Sep 2003
Città: Angri - Milano
Messaggi: 358
|
prefrivo non usare la select
poi non c'è una sequenza fissa in cui si possono verificare i due eventi. praticamente io ho un server in ascolto questo server aprirà un thread per ogni client che si collega ed in questo threads devo gestire i due eventi uno sarebbe proprio la scrittura del socket e volevo usare il Waitevent in modo da non rendere bloccante la recv poi l'altro evento dovrebbe scatenarsi all'esterno di questo thread quando si verifica una certa condizione e richiamo la PulseEvent(id secondo evento) farò qualche alta prova grazie
__________________
Siamo eredi del nostro passato, il futuro è l'unica possibilità di rinascita. XBOXGamerTAG:nightwish78 Dell Studio XPS 16 (1645)-FullHD RGBLed-Intel Core i7 820QM-4GB DDR3-ATI HD 4670 1GB DDR3-HD 320GB 7200 rpm flickr |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Il problema è che non credo che un evento realtivo ai socket possa essere usato con WaitForMultipleObject (nella documentazione questo uso non è presente)...
Potresti usare WSAEventSelect al posto della select... |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Sep 2003
Città: Angri - Milano
Messaggi: 358
|
ma come puoi vedere nell'esempio del primo post uso gia
WSAEventSelect per creare l'evento forse per i socket è meglio usare WSAWaitFomultipleEvents al posto di WaitForMultipleObjects ?
__________________
Siamo eredi del nostro passato, il futuro è l'unica possibilità di rinascita. XBOXGamerTAG:nightwish78 Dell Studio XPS 16 (1645)-FullHD RGBLed-Intel Core i7 820QM-4GB DDR3-ATI HD 4670 1GB DDR3-HD 320GB 7200 rpm flickr |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ma il problema è sempre lo stesso...non puoi controllare entrambi gli eventi insieme...
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Sep 2003
Città: Angri - Milano
Messaggi: 358
|
facendo alcune prove adesso la WSAWaitForMultipleEvents sembra funzionare solo se si scatenano entrambi gli eventi,
anche avendo specificato come terzo parametro FALSE (questo paramtetro è quello con cui si specifica se aspettare che tutti gli eventi si verificano). io ho specificato apposta FALSE perchè basta aspettare che uno degli eventi si verifichi, ed invece non sembra comportarsi così? idee? suggerimenti? grazie
__________________
Siamo eredi del nostro passato, il futuro è l'unica possibilità di rinascita. XBOXGamerTAG:nightwish78 Dell Studio XPS 16 (1645)-FullHD RGBLed-Intel Core i7 820QM-4GB DDR3-ATI HD 4670 1GB DDR3-HD 320GB 7200 rpm flickr |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Sep 2003
Città: Angri - Milano
Messaggi: 358
|
risolto
ho usato la WaitForMultipleObject e funziona benissimo grazie
__________________
Siamo eredi del nostro passato, il futuro è l'unica possibilità di rinascita. XBOXGamerTAG:nightwish78 Dell Studio XPS 16 (1645)-FullHD RGBLed-Intel Core i7 820QM-4GB DDR3-ATI HD 4670 1GB DDR3-HD 320GB 7200 rpm flickr |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:01.



















