grazie tante Marsh davvero gentile.
Ho studiato in questi giorni il tuo codice e gli esempi su google.
per chiarire quello che ho detto e che devo fare:
Ho un compito principale che va ogni 15 minuti , ho impostato un threading timer , infatti il tutto sara un servizio.
e ho un evento che in tempo reale mi invia dei cambiamenti.
Ora ho creato utilizzando i task come mi hai consigliato e una concorrencyqueque la parte principale.

I dati dell evento li ho messi con una classe con piu proprieta dato che son 5 in un oggetto e quest oggetto viuene popolato e inserito nella concorrency queque.
In un loop infinito faccio si di estrarre una per una le classi dati dalla cuncurrency queque e di chiamare una funzione task asincrona, inoltre il trask che mi ritorna la funzione asincrona l'ho messo in una lista di task.
Il task che parte ogni 15 min aspetta con task.awaitall(listacontask) che tutti i task degli eventi siano completati , a quel momento lancia il task principale(è diventato anch esso un task).
il problema che volevo evitare era di fare si che la risorsa condivisa in questo caso il db venga toccato da piu di un task, non mi interessa il multicore per adesso era solo per non creare problemi di concorrenza o altri problemi nell accesso al db.
in questo modo il db è influenzato da un task per volta e se mi arrivano molti eventi vengono immessi nella queque e poi eseguiti quando c'è tempo cosi che non ho un crollo di prestazioni.
puo andare?
consigli?
com è la parte del multicore legata al db se volessi eseguire i task in modo concorrente? è possibile ? uso sql server 12.
sinceramente sei stato molto disponibile e ti ringrazio se poi vuoi spiegarmi a grandi linee e con link ,non dettagliato come hai fatto per i task ,il muilticore legato al db ti sarei ancora grato.
ciao.
e scusa l'ignoranza