Task.Factory Task.Factory Task.Factory Task.Factory Property

정의

TaskTask<TResult> 인스턴스를 만들고 구성하는 팩터리 메서드에 대한 액세스를 제공합니다.Provides access to factory methods for creating and configuring Task and Task<TResult> instances.

public:
 static property System::Threading::Tasks::TaskFactory ^ Factory { System::Threading::Tasks::TaskFactory ^ get(); };
public static System.Threading.Tasks.TaskFactory Factory { get; }
member this.Factory : System.Threading.Tasks.TaskFactory
Public Shared ReadOnly Property Factory As TaskFactory

속성 값

다양한 TaskTask<TResult> 개체를 만들 수 있는 팩터리 개체입니다.A factory object that can create a variety of Task and Task<TResult> objects.

설명

이 속성의 기본 인스턴스를 반환 합니다 TaskFactory 클래스는 매개 변수가 없는 호출 하 여 만든 동일한 TaskFactory.TaskFactory() 생성자입니다.This property returns a default instance of the TaskFactory class that is identical to the one created by calling the parameterless TaskFactory.TaskFactory() constructor. 다음 속성 값을 포함 합니다.It has the following property values:

속성Property Value
TaskFactory.CancellationToken CancellationToken.None
TaskFactory.ContinuationOptions TaskContinuationOptions.None
TaskFactory.CreationOptions TaskCreationOptions.None
TaskFactory.Scheduler null또는 TaskScheduler.Currentnull, or TaskScheduler.Current

이 속성의 가장 일반적인 용도 만들고 단일 호출에서 새 작업을 시작 하는 것은 TaskFactory.StartNew 메서드.The most common use of this property is to create and start a new task in a single call to the TaskFactory.StartNew method.

참고

부터 합니다 .NET Framework 4.5.NET Framework 4.5Task.Run 메서드를 만드는 가장 쉬운 방법은 제공을 Task 기본 구성 값을 사용 하 여 개체입니다.Starting with the .NET Framework 4.5.NET Framework 4.5, the Task.Run method provides the easiest way to create a Task object with default configuration values.

다음 예제에서는 정적 Factory 속성에 대 한 두 호출을는 TaskFactory.StartNew 메서드.The following example uses the static Factory property to make two calls to the TaskFactory.StartNew method. 첫 번째 두 번째 사용자의 내 문서 디렉터리의 하위 디렉터리 이름의 배열을 채웁니다 하는 동안 사용자의 내 문서 디렉터리에 있는 파일 이름의 배열을 채웁니다.The first populates an array with the names of files in the user's MyDocuments directory, while the second populates an array with the names of subdirectories of the user's MyDocuments directory. 그런 다음 호출 하는 TaskFactory.ContinueWhenAll(Task[], Action<Task[]>) 처음 두 개의 작업 실행 완료 후 두 배열에서 파일 및 디렉터리의 수에 대 한 정보를 표시 하는 메서드.It then calls the TaskFactory.ContinueWhenAll(Task[], Action<Task[]>) method, which displays information about the number of files and directories in the two arrays after the first two tasks have completed execution.

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

적용 대상

추가 정보