Domanda

Avere una serie lunga in esecuzione di compiti distinti: l'analisi 10s di migliaia di righe da un file di testo, idratando in oggetti, manipolare e persistente.

Se io fossi l'attuazione del presente in Java, suppongo che potrei aggiungere una nuova attività a un esecutore per ogni riga del file o l'attività per linee X (cioè chunks).

Per Net, che è quello che sto usando, io non sono così sicuro. Ho un sospetto forse CCR potrebbe essere appropriato qui, ma io non sono a conoscenza abbastanza con esso, che è il motivo per cui mi pongo questa domanda.

può funzionare CCR in maniera equivalente a Java Esecutori, o c'è qualcos'altro disponibili?

Grazie

È stato utile?

Soluzione

Si consiglia di guardare il Task Parallel libreria.

A partire dal C # 5 Questo è costruito nella lingua utilizzando i async e await parole chiave.

Altri suggerimenti

Se avete intenzione di chiedere a un gruppo di persone .NET ciò che è più vicina ad essere equivalente a Java Excecutors, potrebbe non far male a descrivere le caratteristiche distintive di Java Esecutori. La persona che conosce la risposta non può essere più familiarità con Java di quello che sei con .NET.

Detto questo, se la Biblioteca Task Parallel già citato è eccessivo per le vostre esigenze, o non si vuole aspettare per .NET 4.0, forse ThreadPool.QueueUserWorkItem () sarebbe quello che stai cercando.

Forse questo è correlato: design: Task Parallel Libreria esplorato . Vedere 10-4 Episodio 6: estensioni parallele come una rapida introduzione.

Per le versioni precedenti approccio filo-based, c'è ThreadPool per la messa in comune.

La classe BackgroundWorker è probabilmente quello che stai cercando. Come suggerisce il nome, permette di eseguire le operazioni in background, con gestito automaticamente messa in comune, e gli eventi di aggiornamento di stato.

Per chi cerca una soluzione più contemporaneo (come ero), controlla la EventLoopScheduler classe.

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