Task.Start Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Tasköğesini başlatır.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| Start() |
Taskgeçerli TaskScheduleröğesine yürütülmek üzere zamanlayarak öğesini başlatır. |
| Start(TaskScheduler) |
Taskbelirtilen TaskScheduleröğesine yürütülmek üzere zamanlayarak öğesini başlatır. |
Start()
- Kaynak:
- Task.cs
- Kaynak:
- Task.cs
- Kaynak:
- Task.cs
- Kaynak:
- Task.cs
- Kaynak:
- Task.cs
Taskgeçerli TaskScheduleröğesine yürütülmek ü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 yeni Task(Action) bir nesne örneği oluşturmak için oluşturucuyu çağırır Task ve ardından bir döngü yürütür. 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
open System.Threading
open System.Threading.Tasks
let t =
new Task(fun () ->
printfn $"Task {Task.CurrentId} running on thread {Thread.CurrentThread.ManagedThreadId}"
for i = 1 to 10 do
printfn $" Iteration {i}")
t.Start()
t.Wait() |> ignore
// 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 örneğini yürütmeden ayırmanız gerekmeyen daha yaygın bir durum için veya Task.Run yönteminin aşırı yüklemesini TaskFactory.StartNew ç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)
- Kaynak:
- Task.cs
- Kaynak:
- Task.cs
- Kaynak:
- Task.cs
- Kaynak:
- Task.cs
- Kaynak:
- Task.cs
Taskbelirtilen TaskScheduleröğesine yürütülmek üzere zamanlayarak öğesini 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örevi ilişkilendirip yürütecek 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.