|
[C#] - Problemi con l'audio su dual core
Ciao,
ho un applicativo che quando riceve un particolare evento, fa suonare al pc un "beep"...... insomma, la cosa piu' semplice del mondo !!!
Il "beep" e' un file wav e viene fatto suonare utilizzando i metodi del namespace
System.Media del nuovo framework Net 2.0.
Per le nostre simulazioni in laboratorio facciamo gestire all'applicazione una grande quantita di eventi, tipo 3-4 al secondo..... di conseguenza vengono
generati altrettanti "beep".
Sui vecchi pc single core nessun problema......
sui nuovi pc dual core invece ne succedono di tutti i colori.
Se non forziamo l'applicativo a girare solo su uno dei core (mediante l'affinity)
gli eventi vengono "cadenzati" dalla durata del suono e visto che il "beep" dura 500ms, non si riesce a gestirne piu' di 2 al secondo. Ovviamente il bip viene suonato in maniera "asincrona".
Forzando l'applicativo a girare utilizzando solo uno dei due core disponibili, le performance tornano ad essere buone...... ma c'e' un effetto collaterale: l'orologio di sistema accelera !!!
Sul pc di test riesce a guadagnare circa 1.5 secondi ogni minuto.....
ogni ora "qualcosa" si accorge di questa accelerazione e rimette l'orologio a posto, allineandolo all'RTC, scombussolando tutti i dati, visto che c'e' un salto all'indietro di 90sec.
In rete ho trovato messaggi che lamentano un "rallentamento" dell'orologio quando si impegna troppo la cpu....... ma non ho mai trovato nessuno che parla di accelerazione.....
Se qualcuno ha qualche idea.....
Grazie.
__________________
Intel Core i5 12500 Msi Pro Z690-P 32Gb Corsair Dominator Platinum GTX1660Super Sk Hynix P41 1Tb Crucial P5+ 1Tb Netac NV5000 2Tb AC Baydream LG 29WK500
Beelink Mini S12Pro N100 16Gb Ssd 512Gb Samsung Galaxy Tab A7 Realme XT
|