Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Parallel.For<TLocal>(Int64, Int64, ParallelOptions, Func<TLocal>, Func<Int64, ParallelLoopState, TLocal, TLocal>, Action<TLocal>)

.NET Framework (current version)
 

Data di pubblicazione: ottobre 2016

Esegue un ciclo for (For in Visual Basic) con indici a 64 bit e dati locali del thread nel quale le iterazioni possono essere eseguite in parallelo, è possibile configurare le opzioni di ciclo e lo stato del ciclo può essere monitorato e modificato.

Spazio dei nomi:   System.Threading.Tasks
Assembly:  mscorlib (in mscorlib.dll)

public static ParallelLoopResult For<TLocal>(
	long fromInclusive,
	long toExclusive,
	ParallelOptions parallelOptions,
	Func<TLocal> localInit,
	Func<long, ParallelLoopState, TLocal, TLocal> body,
	Action<TLocal> localFinally
)

Parametri

fromInclusive
Type: System.Int64

Indice iniziale, incluso.

toExclusive
Type: System.Int64

Indice finale, escluso.

parallelOptions
Type: System.Threading.Tasks.ParallelOptions

Oggetto che configura il comportamento di questa operazione.

localInit
Type: System.Func<TLocal>

Delegato della funzione che restituisce lo stato iniziale dei dati locali per ogni thread.

body
Type: System.Func<Int64, ParallelLoopState, TLocal, TLocal>

Delegato richiamato una volta per iterazione.

localFinally
Type: System.Action<TLocal>

Delegato che esegue un'azione finale sullo stato locale di ogni thread.

Valore restituito

Type: System.Threading.Tasks.ParallelLoopResult

Struttura che contiene informazioni sulla parte di ciclo completata.

Parametri tipo

TLocal

Tipo dei dati locali del thread.

Exception Condition
ArgumentNullException

Il valore dell'argomento body è null.

-oppure-

Il valore dell'argomento localInit è null.

-oppure-

Il valore dell'argomento localFinally è null.

-oppure-

Il valore dell'argomento parallelOptions è null.

OperationCanceledException

Il CancellationToken nel parallelOptions argomento viene annullato.

ObjectDisposedException

Il CancellationTokenSource associato il CancellationToken nel parallelOptions è stato eliminato.

AggregateException

Eccezione che contiene tutte le singole eccezioni generate in tutti i thread.

Il body delegato viene richiamato una volta per ogni valore nell'intervallo di iterazione (fromInclusive, toExclusive). Viene fornito con i seguenti parametri: il conteggio delle iterazioni (Int64), un ParallelLoopState istanza che può essere utilizzata per uscire dal ciclo in modo anomalo e uno stato locale che può essere condiviso fra le iterazioni che vengono eseguite sullo stesso thread.

Il localInit delegato viene richiamato una volta per ogni thread che partecipa all'esecuzione del ciclo e restituisce lo stato locale iniziale per ognuno di tali thread. Questi stati iniziali vengono passati al primo body chiamate su ogni thread. Quindi, ogni chiamata del corpo successiva restituisce un valore di stato probabilmente modificato che viene passato alla chiamata del corpo successiva. Infine, l'ultima chiamata corpo su ogni thread restituisce un valore di stato che viene passato per il localFinally delegare. Il localFinally delegato viene richiamato una volta per thread per eseguire un'azione finale sullo stato locale di ogni thread. Questo delegato può essere chiamato simultaneamente su più thread; Pertanto, è necessario sincronizzare l'accesso a tutte le variabili condivise.

Il Parallel.For metodo può utilizzare più attività di thread per tutta la durata della sua esecuzione, come le attività esistenti completate e vengono sostituiti da nuove attività. In questo modo sottostante TaskScheduler oggetto la possibilità di aggiungere, modificare o rimuovere i thread che il ciclo del servizio.

Se fromInclusive è maggiore o uguale a toExclusive, il metodo restituisce immediatamente senza eseguire nessuna iterazione.

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 4.0
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: