2009-05-29 15 views
12

Possiede un lungo insieme di attività discrete: analisi di 10 s di migliaia di righe da un file di testo, idratazione degli oggetti, manipolazione e persistenza.Esiste un valore .Net equivalente a java.util.concurrent.Executor?

Se stavo implementando questo in Java, suppongo che potrei aggiungere una nuova attività a un Executor per ogni riga del file o dell'attività per X linee (cioè blocchi).

Per .Net, che è quello che sto usando, non ne sono così sicuro. Ho il sospetto che forse il CCR potrebbe essere appropriato qui, ma non ne ho abbastanza familiarità, motivo per cui pongo questa domanda.

È possibile che CCR funzioni in modo equivalente a Esecutori Java o che sia disponibile qualcos'altro?

Grazie

risposta

5

Si consiglia di guardare il Task Parallel Library.

A partire da C# 5 questo è incorporato nella lingua utilizzando le parole chiave async e await.

+0

Il collegamento sembra essere rotto. –

0

La classe BackgroundWorker è probabilmente quello che stai cercando. Come suggerisce il nome, consente di eseguire attività in background, con pool di gestione automatica e eventi di aggiornamento dello stato.

+1

L'esecutore di Java può fare molto di più. Vedere http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ThreadPoolExecutor.html per esempio. –

1

Se hai intenzione di chiedere a un gruppo di utenti .NET ciò che è più vicino all'equivalente di Java Excecutors, potrebbe non essere pericoloso descrivere le caratteristiche distintive di Java Executor. La persona che conosce la tua risposta potrebbe non avere più familiarità con Java di quanto non lo sia con .NET.

Detto questo, se la già citata Libreria parallela task è eccessiva per le proprie esigenze, o se non si desidera attendere .NET 4.0, forse ThreadPool.QueueUserWorkItem() sarebbe quello che stai cercando.