Oppure

Loading
05/12/14 8:41
Dice
Guarda ti dico cosa ho fatto XD :
alla fine ho provato a fare come ti dicevo io (un thread infinito per ogni evento)...
il progetto funziona, non da errori, ma... ho voluto controllare per curiosità l'utilizzo della CPU...
100 PER CENTO!!!!!
Non pensavo che già soltanto 4 o 5 thread mi ciucciassero tutta la CPU... pensavo che accadesse magari con 100 thread XD

Adesso provo a fare come dici te, poi ti faccio sapere se ho problemi ;)
aaa
05/12/14 8:57
Dice
Pensavo... ma sennò invece dei thread, che a quanto pare consumano mooolta CPU, ci sarebbe un altro componente un po più "leggero"? (ho gia letto sul web che i threadpool vanno bene solo per "lavori di breve durata";)
Quale potrebbe essere una soluzione alternativa?
aaa
05/12/14 16:44
Roby94
Una CPU Intel con 4 core e hyper threading (la configurazione che permette il numero maggiore di thread simultanei) arriva massimo a 8 thread simultanei, stai facendo girare il tuo programma su un sistema operativo MOLTO complesso quindi gia le operazioni non richieste dal tuo programma possono arrivare ad un picco del 100%, tu gli chiedi in piu di eseguire un calcolo con tempo indeterminato e senza pause. Arriva tu alle conclusioni.

Nemmeno su una macchina dedicata che fa girare solo il programma a basso livello sarebbe un operazioni consigliata.

Edit: La CPU può gestire thread non esiste qualcosa di più basilare, è sicuro che la classe di .NET l'appesantisce ma o quella o qualcosa di piu complesso.
Ultima modifica effettuata da Roby94 05/12/14 16:46
aaa
05/12/14 18:10
Stai sbagliando ad utilizzare i thread in quel modo.

Nel ciclo principale del thread devi inserire una chiamata per "addormentare" un po' il thread per lo scheduler del sistema operativo. Senza addentrarci troppo nelle spiegazioni, devi inserire nel ciclo del thread una

System.Threading.Thread.Sleep(100);



07/12/14 17:29
Dice
Pensavo a questo:
visto che gli eventi (giornaliere/mensili/annuali) si ripetono appunto una volta al giorno, potrei mettere uno sleep di 23 ore e mezza subito dopo aver gestito un qualunque evento.

Che ne dite? E' una cosa stupida o può andare?
aaa
07/12/14 18:03
E' una cosa stupida.

P.S. La CPU adesso come va?
08/12/14 19:07
Roby94
Postato originariamente da Dice:

Pensavo a questo:
visto che gli eventi (giornaliere/mensili/annuali) si ripetono appunto una volta al giorno, potrei mettere uno sleep di 23 ore e mezza subito dopo aver gestito un qualunque evento.

Che ne dite? E' una cosa stupida o può andare?

Orribile, ma perché la mia soluzione non ti va bene? Non capisco proprio che limitazioni ti imporrerebbe.
aaa
09/12/14 17:25
Dice
Ci ho rinunciato a fare a modo mio :(
Adesso sto provando come dici tu Roby ;)
aaa