Task.Start Yöntem

Tanım

öğesini Taskbaşlatır.

Aşırı Yüklemeler

Start()

Taskgeçerli ile yürütülmek TaskSchedulerüzere zamanlayarak öğesini başlatır.

Start(TaskScheduler)

Task, belirtilen öğesine yürütülmek üzere TaskSchedulerzamanlayarak başlatır.

Start()

Taskgeçerli ile yürütülmek TaskSchedulerüzere zamanlayarak öğesini başlatır.

public:
 void Start();
public void Start ();
member this.Start : unit -> unit
Public Sub Start ()

Özel durumlar

Örnek Task atılmıştır.

Task başlatılacak geçerli bir durumda değil. Önceden başlatılmış, yürütülmüş veya iptal edilmiş veya doğrudan zamanlamayı desteklemeyen bir şekilde oluşturulmuş olabilir.

Örnekler

Aşağıdaki örnek, görev kimliğini ve yönetilen iş parçacığı kimliğini görüntüleyen ve ardından bir döngü yürüten yeni Task bir nesnenin örneğini oluşturmak için oluşturucuyu çağırırTask(Action). Ardından görevi yürütmek için yöntemini çağırır Start . Bu bir konsol uygulaması olduğundan, görevin yürütülmesi tamamlanmadan önce uygulamanın sonlandırılmasını önlemek için yöntemine çağrı Wait yapılması gerekir.

using System;
using System.Threading;
using System.Threading.Tasks;

public class Example
{
   public static void Main()
   {
      var t = new Task( () => { Console.WriteLine("Task {0} running on thread {1}",
                                                  Task.CurrentId, Thread.CurrentThread.ManagedThreadId);
                                for (int ctr = 1; ctr <= 10; ctr++)
                                   Console.WriteLine("   Iteration {0}", ctr); } 
                        );
      t.Start();
      t.Wait();   
   }
}
// The example displays output like the following:
//     Task 1 running on thread 3
//        Iteration 1
//        Iteration 2
//        Iteration 3
//        Iteration 4
//        Iteration 5
//        Iteration 6
//        Iteration 7
//        Iteration 8
//        Iteration 9
//        Iteration 10
Imports System.Threading
Imports System.Threading.Tasks

Module Example
   Public Sub Main()
      Dim t As New Task(Sub()
                           Console.WriteLine("Task {0} running on thread {1}",
                                             Task.CurrentId, Thread.CurrentThread.ManagedThreadId )
                           For ctr As Integer = 1 To 10
                              Console.WriteLine("   Iteration {0}", ctr)
                           Next   
                        End Sub)
      t.Start
      t.Wait()   
   End Sub
End Module
' The example displays output like the following:
'     Task 1 running on thread 3
'        Iteration 1
'        Iteration 2
'        Iteration 3
'        Iteration 4
'        Iteration 5
'        Iteration 6
'        Iteration 7
'        Iteration 8
'        Iteration 9
'        Iteration 10

Açıklamalar

Bir görev başlatılabilir ve yalnızca bir kez çalıştırılabilir. Bir görevi ikinci kez zamanlama girişimleri özel durumla sonuçlanır.

Start oluşturuculardan biri Task çağrılarak oluşturulan bir görevi yürütmek için kullanılır. Genellikle, örneğin oluşturduğunuz görevleri koşullu olarak yürütürken, görevin oluşturulmasını yürütmesinden ayırmanız gerektiğinde bunu yaparsınız. Görev örneklemesini yürütmeden ayırmanız gerekmeyen daha yaygın bir durum için veya TaskFactory.StartNew yönteminin aşırı yüklemesini Task.Run çağırmanızı öneririz.

Görev işlemleri tarafından oluşan özel durumları işleme hakkında bilgi için bkz. Özel Durum İşleme.

Ayrıca bkz.

Şunlara uygulanır

Start(TaskScheduler)

Task, belirtilen öğesine yürütülmek üzere TaskSchedulerzamanlayarak başlatır.

public:
 void Start(System::Threading::Tasks::TaskScheduler ^ scheduler);
public void Start (System.Threading.Tasks.TaskScheduler scheduler);
member this.Start : System.Threading.Tasks.TaskScheduler -> unit
Public Sub Start (scheduler As TaskScheduler)

Parametreler

scheduler
TaskScheduler

TaskScheduler Bu görevin ilişkilendirilip yürütülecek olan.

Özel durumlar

scheduler bağımsız değişkenidirnull.

Task başlatılacak geçerli bir durumda değil. Önceden başlatılmış, yürütülmüş veya iptal edilmiş veya doğrudan zamanlamayı desteklemeyen bir şekilde oluşturulmuş olabilir.

Örnek Task atılmıştır.

Zamanlayıcı bu görevi kuyruğa alamadı.

Açıklamalar

Bir görev yalnızca bir kez başlatılabilir ve çalıştırılabilir. Bir görevi ikinci kez zamanlama girişimleri özel durumla sonuçlanır.

Görev işlemleri tarafından oluşan özel durumları işleme hakkında bilgi için bkz. Özel Durum İşleme.

Ayrıca bkz.

Şunlara uygulanır