Factories مهمة
مصنع مهمة هو يمثله System.Threading.Tasks.TaskFactoryفئة، والذي يقوم بإنشاء Taskالكائنات، أو System.Threading.Tasks.TaskFactory<TResult>فئة، والذي يقوم بإنشاء Task<TResult>الكائنات. تحتوي كل من الفئات على الأساليب التي يمكنك استخدامها إلى:
إنشاء مهام و يبدأ إليهم مباشرة. لمزيد من المعلومات، راجع Parallelism مهمة (المهام مكتبة متوازٍ).
إنشاء continuations التي يتم تشغيلها عند أي من أو كل من صفيف مهام بإكمال المهمة. لمزيد من المعلومات، راجع متابعة المهام.
قم بإنشاء المهام التي تمثل أزواج من البداية/إنهاء الأساليب التي تتبع "نموذج برمجة" غير متزامن. لمزيد من المعلومات، راجع برمجة TPL و.NET التقليدية غير متزامن.
Taskفئة يحتوي على خاصية ثابتة الذي يمثل الافتراضي TaskFactory. بشكل عام، TaskFactoryيتم بها استدعاء الأساليب باستخدام Factoryخاصية، كـ هو موضح في المثال التالي.
[Visual Basic]
Dim taskA as Task = Task.Factory.StartNew(Sub( ...))
[#C]
Task taskA = Task.Factory.StartNew( () => ...);
في معظم الحالات، لم يكن لديك إلى اشتقاق فئة جديدة من TaskFactory. ومع ذلك، فإنه هو أحياناً مفيدة لتكوين جديد TaskFactoryثم استخدمه لتعيين خيارات معينة أو لربط المهام باستخدام برنامج جدولة مخصصة. يوضح المثال التالي كيفية إلى تكوين جديد TaskFactoryالذي يقوم بإنشاء مهام جميع استخدام المحدد TaskSchedulerوالمحدد TaskCreationOptionsالخيارات.
Class Program
Shared Sub Main()
Dim cts As CancellationTokenSource = New CancellationTokenSource()
Dim _factory As TaskFactory = New TaskFactory(
cts.Token,
TaskCreationOptions.PreferFairness,
TaskContinuationOptions.ExecuteSynchronously,
New MyScheduler())
Dim t2 = _factory.StartNew(Sub() DoWork())
End Sub
Shared Sub DoWork()
' ...
End Sub
class Program
{
static CancellationTokenSource cts = new CancellationTokenSource();
private static TaskFactory _factory = new TaskFactory(
cts.Token,
TaskCreationOptions.PreferFairness,
TaskContinuationOptions.ExecuteSynchronously,
new MyScheduler());
static void Main(string[] args)
{
var t2 = _factory.StartNew(() => DoWork());
}
static void DoWork() {/*...*/ }
}