Domanda

voglio usare TPL nel processo di lavoro su Windows Azure. Sto cercando di aggiungere un IJob la coda, questo ha un metodo Run, in modo che il lavoratore sarà composto da:

ciclo ottenere voce fuori di coda Utilizzare TPL per chiamare IJob.Run, si tratta di una chiamata asincrona

Ma io sono un po 'preoccupato per le voci massimo che posso aggiungere al TPL? Sono felice di costruire il mio TPL Pool di qualche tipo, se necessario, solo controllando che le capacità.

Saluti, Ash.

È stato utile?

Soluzione

Uno dei principali obiettivi del TPL è quello di eliminare la necessità di preoccuparsi di questo. Scomponendo il lavoro in compiti al posto di fili, si sta permettendo lo scheduler per gestire il bilanciamento di questo in modo più appropriato.

Non v'è alcun limite superiore fisso al numero di "compiti" è possibile pianificare. Sono (di default, con il difetto TaskScheduler) programmato utilizzando il ThreadPool, che al NET 4, scale basate sul lavoro. Vorrei suggerire non cercando di costruire la propria piscina - è altamente improbabile che farete meglio da quello predefinito. Detto questo, se le attività hanno un comportamento molto non standard, si può prendere in considerazione la scrittura di un personalizzato TaskScheduler.

Inoltre - rendersi conto che si dovrebbe, idealmente, rendere la vostra attività come "grande possibile". C'è overhead associato con un compito individuale -. Avendo loro di essere troppo piccola (in termini di lavoro) farà sì che il sovraccarico di avere un impatto maggiore sulle prestazioni che se si dispone di un numero adeguato di "compiti" più grandi

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top