TaskFactory Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Támogatja az objektumok létrehozását és ütemezését Task .
public ref class TaskFactory
public class TaskFactory
type TaskFactory = class
Public Class TaskFactory
- Öröklődés
-
TaskFactory
Példák
Az alábbi példa a statikus Factory tulajdonság használatával két hívást indít a TaskFactory.StartNew metódusra. Az első kitölt egy tömböt a felhasználó MyDocuments könyvtárában található fájlok nevével, a második pedig feltölt egy tömböt a felhasználó MyDocuments könyvtárának alkönyvtárainak nevével. Ezután meghívja a TaskFactory.ContinueWhenAll(Task[], Action<Task[]>) metódust, amely információkat jelenít meg a két tömbben lévő fájlok és könyvtárak számáról az első két feladat végrehajtása után.
using System;
using System.IO;
using System.Threading.Tasks;
public class Example
{
public static void Main()
{
Task[] tasks = new Task[2];
String[] files = null;
String[] dirs = null;
String docsDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
tasks[0] = Task.Factory.StartNew( () => files = Directory.GetFiles(docsDirectory));
tasks[1] = Task.Factory.StartNew( () => dirs = Directory.GetDirectories(docsDirectory));
Task.Factory.ContinueWhenAll(tasks, completedTasks => {
Console.WriteLine("{0} contains: ", docsDirectory);
Console.WriteLine(" {0} subdirectories", dirs.Length);
Console.WriteLine(" {0} files", files.Length);
} );
}
}
// The example displays output like the following:
// C:\Users\<username>\Documents contains:
// 24 subdirectories
// 16 files
Imports System.IO
Imports System.Threading.Tasks
Module Example
Public Sub Main()
Dim tasks(1) As Task
Dim files() As String = Nothing
Dim dirs() As String = Nothing
Dim docsDirectory As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
tasks(0) = Task.Factory.StartNew( Sub()
files = Directory.GetFiles(docsDirectory)
End Sub )
tasks(1) = Task.Factory.StartNew( Sub()
dirs = Directory.GetDirectories(docsDirectory)
End Sub )
Task.Factory.ContinueWhenAll(tasks, Sub(completedTasks)
Console.WriteLine("{0} contains: ", docsDirectory)
Console.WriteLine(" {0} subdirectories", dirs.Length)
Console.WriteLine(" {0} files", files.Length)
End Sub)
End Sub
End Module
' The example displays output like the following:
' C:\Users\<username>\Documents contains:
' 24 subdirectories
' 16 files
Megjegyzések
.NET két gyárat biztosít a feladatok létrehozásához és ütemezéséhez:
Az TaskFactory osztály, amely létrehoz Task és Task<TResult> objektumokat. A metódus túlterheléseit meghívva létrehozhat és végrehajthat egy olyan feladatot, amely nem alapértelmezett argumentumokat igényel.
Warning
A .NET Framework 4.5-től kezdve a Task.Run metódus a legegyszerűbb módot kínálja az alapértelmezett konfigurációs értékekkel rendelkező feladatok létrehozására és azonnali elindítására.
Az TaskFactory<TResult> objektumokat létrehozó Task<TResult> osztály.
Az TaskFactory osztály a következőket teszi lehetővé:
Hozzon létre egy feladatot, és azonnal indítsa el a StartNew metódus meghívásával.
Warning
A .NET Framework 4.5-től kezdve a Task.Run metódus a legegyszerűbb módot kínálja az alapértelmezett konfigurációs értékekkel rendelkező feladatok létrehozására és azonnali elindítására.
Hozzon létre egy feladatot, amely akkor indul el, amikor egy tömb bármelyik tevékenysége befejeződött a ContinueWhenAny metódus meghívásával.
Hozzon létre egy tevékenységet, amely akkor indul el, amikor egy tömb összes tevékenysége befejeződött a ContinueWhenAll metódus meghívásával.
A statikus Task<TResult>.Factory tulajdonság egy alapértelmezett TaskFactory<TResult> objektumot ad vissza. Az osztálykonstruktorok TaskFactory egyikét Task is meghívhatja az TaskFactory osztály által létrehozott objektumok konfigurálásához. Az alábbi példa egy új TaskFactory objektumot konfigurál a megadott lemondási jogkivonattal, tevékenységlétrehozási lehetőségekkel, folytatási lehetőségekkel és testreszabott feladatütemezővel rendelkező tevékenységek létrehozásához.
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
class Example
{
static CancellationTokenSource cts = new CancellationTokenSource();
static TaskFactory factory = new TaskFactory(
cts.Token,
TaskCreationOptions.PreferFairness,
TaskContinuationOptions.ExecuteSynchronously,
new CustomScheduler());
static void Main()
{
var t2 = factory.StartNew(() => DoWork());
cts.Dispose();
}
static void DoWork() {/*...*/ }
}
Imports System.Collections.Generic
Imports System.Threading
Imports System.Threading.Tasks
Module Example
Public Sub Main()
Dim cts As New CancellationTokenSource()
Dim factory As New TaskFactory(cts.Token,
TaskCreationOptions.PreferFairness,
TaskContinuationOptions.ExecuteSynchronously,
New CustomScheduler())
Dim t2 = factory.StartNew(Sub() DoWork())
cts.Dispose()
End Sub
Sub DoWork()
' ...
End Sub
End Module
A legtöbb esetben nem kell új TaskFactory példányt létrehoznia. Ehelyett használhatja a Task.Factory tulajdonságot, amely egy alapértelmezett értékeket használó gyári objektumot ad vissza. Ezután meghívhatja a metódusokat új tevékenységek indításához vagy a tevékenységek folytatásának definiálásához. Ábrát a példában talál.
Konstruktorok
| Name | Description |
|---|---|
| TaskFactory() |
Inicializál egy példányt TaskFactory az alapértelmezett konfigurációval. |
| TaskFactory(CancellationToken, TaskCreationOptions, TaskContinuationOptions, TaskScheduler) |
Inicializál egy példányt TaskFactory a megadott konfigurációval. |
| TaskFactory(CancellationToken) |
Inicializál egy példányt TaskFactory a megadott konfigurációval. |
| TaskFactory(TaskCreationOptions, TaskContinuationOptions) |
Inicializál egy példányt TaskFactory a megadott konfigurációval. |
| TaskFactory(TaskScheduler) |
Inicializál egy példányt TaskFactory a megadott konfigurációval. |
Tulajdonságok
| Name | Description |
|---|---|
| CancellationToken |
Lekéri a feladat-előállító alapértelmezett lemondási jogkivonatát. |
| ContinuationOptions |
Lekéri a tevékenység-előállító alapértelmezett tevékenység-folytatási beállításait. |
| CreationOptions |
Lekéri a feladat-előállító alapértelmezett tevékenységlétrehozási beállításait. |
| Scheduler |
Lekéri a feladat-előállító alapértelmezett feladatütemezőjét. |
Metódusok
| Name | Description |
|---|---|
| ContinueWhenAll(Task[], Action<Task[]>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Létrehoz egy folytatási feladatot, amely akkor indul el, amikor a megadott tevékenységek egy készlete befejeződött. |
| ContinueWhenAll(Task[], Action<Task[]>, CancellationToken) |
Létrehoz egy folytatási feladatot, amely akkor indul el, amikor a megadott tevékenységek egy készlete befejeződött. |
| ContinueWhenAll(Task[], Action<Task[]>, TaskContinuationOptions) |
Létrehoz egy folytatási feladatot, amely akkor indul el, amikor a megadott tevékenységek egy készlete befejeződött. |
| ContinueWhenAll(Task[], Action<Task[]>) |
Létrehoz egy folytatási feladatot, amely akkor indul el, amikor a megadott tevékenységek egy készlete befejeződött. |
| ContinueWhenAll<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>[],TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Létrehoz egy folytatási feladatot, amely akkor indul el, amikor a megadott tevékenységek egy készlete befejeződött. |
| ContinueWhenAll<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>[],TResult>, CancellationToken) |
Létrehoz egy folytatási feladatot, amely akkor indul el, amikor a megadott tevékenységek egy készlete befejeződött. |
| ContinueWhenAll<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>[],TResult>, TaskContinuationOptions) |
Létrehoz egy folytatási feladatot, amely akkor indul el, amikor a megadott tevékenységek egy készlete befejeződött. |
| ContinueWhenAll<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>[],TResult>) |
Létrehoz egy folytatási feladatot, amely akkor indul el, amikor a megadott tevékenységek egy készlete befejeződött. |
| ContinueWhenAll<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>[]>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Létrehoz egy folytatási feladatot, amely akkor indul el, amikor a megadott tevékenységek egy készlete befejeződött. |
| ContinueWhenAll<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>[]>, CancellationToken) |
Létrehoz egy folytatási feladatot, amely akkor indul el, amikor a megadott tevékenységek egy készlete befejeződött. |
| ContinueWhenAll<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>[]>, TaskContinuationOptions) |
Létrehoz egy folytatási feladatot, amely akkor indul el, amikor a megadott tevékenységek egy készlete befejeződött. |
| ContinueWhenAll<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>[]>) |
Létrehoz egy folytatási feladatot, amely akkor indul el, amikor a megadott tevékenységek egy készlete befejeződött. |
| ContinueWhenAll<TResult>(Task[], Func<Task[],TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Létrehoz egy folytatási feladatot, amely akkor indul el, amikor a megadott tevékenységek egy készlete befejeződött. |
| ContinueWhenAll<TResult>(Task[], Func<Task[],TResult>, CancellationToken) |
Létrehoz egy folytatási feladatot, amely akkor indul el, amikor a megadott tevékenységek egy készlete befejeződött. |
| ContinueWhenAll<TResult>(Task[], Func<Task[],TResult>, TaskContinuationOptions) |
Létrehoz egy folytatási feladatot, amely akkor indul el, amikor a megadott tevékenységek egy készlete befejeződött. |
| ContinueWhenAll<TResult>(Task[], Func<Task[],TResult>) |
Létrehoz egy folytatási feladatot, amely akkor indul el, amikor a megadott tevékenységek egy készlete befejeződött. |
| ContinueWhenAny(Task[], Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Létrehoz egy folytatást Task , amely a megadott készlet bármely tevékenységének befejezésekor elindul. |
| ContinueWhenAny(Task[], Action<Task>, CancellationToken) |
Létrehoz egy folytatást Task , amely a megadott készlet bármely tevékenységének befejezésekor elindul. |
| ContinueWhenAny(Task[], Action<Task>, TaskContinuationOptions) |
Létrehoz egy folytatást Task , amely a megadott készlet bármely tevékenységének befejezésekor elindul. |
| ContinueWhenAny(Task[], Action<Task>) |
Létrehoz egy folytatást Task , amely a megadott készlet bármely tevékenységének befejezésekor elindul. |
| ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Létrehoz egy folytatást Task<TResult> , amely a megadott készlet bármely tevékenységének befejezésekor elindul. |
| ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, CancellationToken) |
Létrehoz egy folytatást Task<TResult> , amely a megadott készlet bármely tevékenységének befejezésekor elindul. |
| ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, TaskContinuationOptions) |
Létrehoz egy folytatást Task<TResult> , amely a megadott készlet bármely tevékenységének befejezésekor elindul. |
| ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>) |
Létrehoz egy folytatást Task<TResult> , amely a megadott készlet bármely tevékenységének befejezésekor elindul. |
| ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Létrehoz egy folytatást Task , amely a megadott készlet bármely tevékenységének befejezésekor elindul. |
| ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, CancellationToken) |
Létrehoz egy folytatást Task , amely a megadott készlet bármely tevékenységének befejezésekor elindul. |
| ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, TaskContinuationOptions) |
Létrehoz egy folytatást Task , amely a megadott készlet bármely tevékenységének befejezésekor elindul. |
| ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>) |
Létrehoz egy folytatást Task , amely a megadott készlet bármely tevékenységének befejezésekor elindul. |
| ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Létrehoz egy folytatást Task<TResult> , amely a megadott készlet bármely tevékenységének befejezésekor elindul. |
| ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, CancellationToken) |
Létrehoz egy folytatást Task<TResult> , amely a megadott készlet bármely tevékenységének befejezésekor elindul. |
| ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, TaskContinuationOptions) |
Létrehoz egy folytatást Task<TResult> , amely a megadott készlet bármely tevékenységének befejezésekor elindul. |
| ContinueWhenAny<TResult>(Task[], Func<Task,TResult>) |
Létrehoz egy folytatást Task<TResult> , amely a megadott készlet bármely tevékenységének befejezésekor elindul. |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| FromAsync(Func<AsyncCallback,Object,IAsyncResult>, Action<IAsyncResult>, Object, TaskCreationOptions) |
Task Az aszinkron programozási modell mintájának megfelelő kezdő és végpont metóduspárokat hoz létre. |
| FromAsync(Func<AsyncCallback,Object,IAsyncResult>, Action<IAsyncResult>, Object) |
Task Az aszinkron programozási modell mintájának megfelelő kezdő és végpont metóduspárokat hoz létre. |
| FromAsync(IAsyncResult, Action<IAsyncResult>, TaskCreationOptions, TaskScheduler) |
Létrehoz egy Task végpontmetódus-műveletet egy adott IAsyncResult művelet befejezésekor. |
| FromAsync(IAsyncResult, Action<IAsyncResult>, TaskCreationOptions) |
Létrehoz egy Task végpontmetódus-műveletet egy adott IAsyncResult művelet befejezésekor. |
| FromAsync(IAsyncResult, Action<IAsyncResult>) |
Létrehoz egy Task végpontmetódus-műveletet egy adott IAsyncResult művelet befejezésekor. |
| FromAsync<TArg1,TArg2,TArg3,TResult>(Func<TArg1,TArg2,TArg3,AsyncCallback, Object,IAsyncResult>, Func<IAsyncResult,TResult>, TArg1, TArg2, TArg3, Object, TaskCreationOptions) |
Task<TResult> Az aszinkron programozási modell mintájának megfelelő kezdő és végpont metóduspárokat hoz létre. |
| FromAsync<TArg1,TArg2,TArg3,TResult>(Func<TArg1,TArg2,TArg3,AsyncCallback, Object,IAsyncResult>, Func<IAsyncResult,TResult>, TArg1, TArg2, TArg3, Object) |
Task<TResult> Az aszinkron programozási modell mintájának megfelelő kezdő és végpont metóduspárokat hoz létre. |
| FromAsync<TArg1,TArg2,TArg3>(Func<TArg1,TArg2,TArg3,AsyncCallback, Object,IAsyncResult>, Action<IAsyncResult>, TArg1, TArg2, TArg3, Object, TaskCreationOptions) |
Task Az aszinkron programozási modell mintájának megfelelő kezdő és végpont metóduspárokat hoz létre. |
| FromAsync<TArg1,TArg2,TArg3>(Func<TArg1,TArg2,TArg3,AsyncCallback,Object,IAsyncResult>, Action<IAsyncResult>, TArg1, TArg2, TArg3, Object) |
Task Az aszinkron programozási modell mintájának megfelelő kezdő és végpont metóduspárokat hoz létre. |
| FromAsync<TArg1,TArg2,TResult>(Func<TArg1,TArg2,AsyncCallback, Object,IAsyncResult>, Func<IAsyncResult,TResult>, TArg1, TArg2, Object, TaskCreationOptions) |
Task<TResult> Az aszinkron programozási modell mintájának megfelelő kezdő és végpont metóduspárokat hoz létre. |
| FromAsync<TArg1,TArg2,TResult>(Func<TArg1,TArg2,AsyncCallback,Object,IAsyncResult>, Func<IAsyncResult,TResult>, TArg1, TArg2, Object) |
Task<TResult> Az aszinkron programozási modell mintájának megfelelő kezdő és végpont metóduspárokat hoz létre. |
| FromAsync<TArg1,TArg2>(Func<TArg1,TArg2,AsyncCallback,Object,IAsyncResult>, Action<IAsyncResult>, TArg1, TArg2, Object, TaskCreationOptions) |
Task Az aszinkron programozási modell mintájának megfelelő kezdő és végpont metóduspárokat hoz létre. |
| FromAsync<TArg1,TArg2>(Func<TArg1,TArg2,AsyncCallback,Object,IAsyncResult>, Action<IAsyncResult>, TArg1, TArg2, Object) |
Task Az aszinkron programozási modell mintájának megfelelő kezdő és végpont metóduspárokat hoz létre. |
| FromAsync<TArg1,TResult>(Func<TArg1,AsyncCallback,Object,IAsyncResult>, Func<IAsyncResult,TResult>, TArg1, Object, TaskCreationOptions) |
Task<TResult> Az aszinkron programozási modell mintájának megfelelő kezdő és végpont metóduspárokat hoz létre. |
| FromAsync<TArg1,TResult>(Func<TArg1,AsyncCallback,Object,IAsyncResult>, Func<IAsyncResult,TResult>, TArg1, Object) |
Task<TResult> Az aszinkron programozási modell mintájának megfelelő kezdő és végpont metóduspárokat hoz létre. |
| FromAsync<TArg1>(Func<TArg1,AsyncCallback,Object,IAsyncResult>, Action<IAsyncResult>, TArg1, Object, TaskCreationOptions) |
Task Az aszinkron programozási modell mintájának megfelelő kezdő és végpont metóduspárokat hoz létre. |
| FromAsync<TArg1>(Func<TArg1,AsyncCallback,Object,IAsyncResult>, Action<IAsyncResult>, TArg1, Object) |
Task Az aszinkron programozási modell mintájának megfelelő kezdő és végpont metóduspárokat hoz létre. |
| FromAsync<TResult>(Func<AsyncCallback,Object,IAsyncResult>, Func<IAsyncResult,TResult>, Object, TaskCreationOptions) |
Task<TResult> Az aszinkron programozási modell mintájának megfelelő kezdő és végpont metóduspárokat hoz létre. |
| FromAsync<TResult>(Func<AsyncCallback,Object,IAsyncResult>, Func<IAsyncResult,TResult>, Object) |
Task<TResult> Az aszinkron programozási modell mintájának megfelelő kezdő és végpont metóduspárokat hoz létre. |
| FromAsync<TResult>(IAsyncResult, Func<IAsyncResult,TResult>, TaskCreationOptions, TaskScheduler) |
Létrehoz egy Task<TResult> végfelhasználói metódusfüggvényt, amikor egy megadott IAsyncResult befejeződik. |
| FromAsync<TResult>(IAsyncResult, Func<IAsyncResult,TResult>, TaskCreationOptions) |
Létrehoz egy Task<TResult> végfelhasználói metódusfüggvényt, amikor egy megadott IAsyncResult befejeződik. |
| FromAsync<TResult>(IAsyncResult, Func<IAsyncResult,TResult>) |
Létrehoz egy Task<TResult> végfelhasználói metódusfüggvényt, amikor egy megadott IAsyncResult befejeződik. |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| StartNew(Action, CancellationToken, TaskCreationOptions, TaskScheduler) |
Létrehoz és elindít egy feladatot a megadott műveletmeghatalmazáshoz, lemondási jogkivonathoz, létrehozási beállításokhoz és állapothoz. |
| StartNew(Action, CancellationToken) |
Létrehoz és elindít egy feladatot a megadott műveletmeghatalmazási és lemondási jogkivonathoz. |
| StartNew(Action, TaskCreationOptions) |
Létrehoz és elindít egy feladatot a megadott műveletmeghatalmazási és létrehozási beállításokhoz. |
| StartNew(Action) |
Létrehoz és elindít egy feladatot a megadott műveletmeghatalmazáshoz. |
| StartNew(Action<Object>, Object, CancellationToken, TaskCreationOptions, TaskScheduler) |
Létrehoz és elindít egy feladatot a megadott műveletmeghatalmazáshoz, állapothoz, lemondási jogkivonathoz, létrehozási beállításokhoz és feladatütemezőhöz. |
| StartNew(Action<Object>, Object, CancellationToken) |
Létrehoz és elindít egy feladatot a megadott műveletmeghatalmazási, állapot- és lemondási jogkivonathoz. |
| StartNew(Action<Object>, Object, TaskCreationOptions) |
Létrehoz és elindít egy feladatot a megadott műveletmeghatalmazási, állapot- és létrehozási beállításokhoz. |
| StartNew(Action<Object>, Object) |
Létrehoz és elindít egy feladatot a megadott műveleti delegálthoz és állapothoz. |
| StartNew<TResult>(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions, TaskScheduler) |
Létrehoz és elindít egy típusú |
| StartNew<TResult>(Func<Object,TResult>, Object, CancellationToken) |
Létrehoz és elindít egy feladattípust |
| StartNew<TResult>(Func<Object,TResult>, Object, TaskCreationOptions) |
Létrehoz és elindít egy típusú |
| StartNew<TResult>(Func<Object,TResult>, Object) |
Létrehoz és elindít egy feladattípust |
| StartNew<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions, TaskScheduler) |
Létrehoz és elindít egy típusú |
| StartNew<TResult>(Func<TResult>, CancellationToken) |
Létrehoz és elindít egy feladattípust |
| StartNew<TResult>(Func<TResult>, TaskCreationOptions) |
Létrehoz és elindít egy típusfeladatot |
| StartNew<TResult>(Func<TResult>) |
Létrehoz és elindít egy feladattípust |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
A következőre érvényes:
Szálbiztonság
Az összes nyilvános és védett tagja TaskFactory szálbiztos, és egyidejűleg több szálból is használható.