Dopo tanta ricerca, ho pensato di chiedere agli esperti.
Sto lavorando a un progetto per il mio datore di lavoro aziendale, abbiamo app per dispositivi mobili Android e iPhone che effettuano richiesta a un servizio Web, la richiesta viene registrata in attesa di elaborazione.
Un servizio Windows recupera le richieste in sospeso e gira un nuovo thread per ogni richiesta. Questo perché la richiesta potrebbe essere indirizzata a diversi provider che elaborano la richiesta in modi diversi. Uno potrebbe elaborare immediatamente la richiesta e restituire il feedback, altri potrebbero ricevere la richiesta e impiegare fino a 30 secondi per restituire un feedback per il quale è necessario eseguire il polling dello stato.
Anche l'app mobile eseguirà il polling per lo stato della richiesta.
Ora la mia sfida è:
Sto pensando di creare un elenco di thread per 100 e assegnare ciascun thread per eseguire una richiesta, una volta terminato il thread verrà ricreato e assegnata una nuova richiesta. È una piattaforma ad alta risposta, quindi penso di non usare ThreadPool.
È consigliabile girare nuovi thread in un incendio e dimenticare la sequenza o gestire questi elenchi di thread e se deve essere gestito, qual è l'approccio migliore per gestire questi elenchi di thread e garantire alte prestazioni in C # come il mobile le app eseguiranno il polling per una risposta.