, .
// Id Currentld.
Using System;
Using System.Threading;
Using System.Threading.Tasks;
class DemoTask {
// , , static void MyTaskO {
Console.WriteLine("MyTask() " + Task.Currentld + " ");
for (int count = 0; count < 10; count++) {
Thread.Sleep(500);
Console.WriteLine(" MyTaskO #" + Task.Currentld +
", " + count);
}
Console.WriteLine("MyTask " + Task.Currentld + " ");
}
static void Main() {
Console.WriteLine(" .");
// .
Task tsk = new Task(MyTask);
Task tsk2 = new Task(MyTask);
// , tsk.Start(); tsk2.Start();
Console.WriteLine(" tsk: " + tsk.Id);
Console.WriteLine(" tsk2: " + tsk2.Id);
// Main() , for(int i = 0; i < 60; i++) {
Console.Write(".");
Thread.Sleep (100);
}
Console.WriteLine(" .");
}
}
.
tsk: 1 tsk2: 2.MyTask() 1 MyTask() 2
MyTask 1
MyTask() 2, 9 MyTask 2 ......... .
, , Main (), , Thread. Sleep (). .
, , Task. Wait (), , . .
Public void Wait()
. Ob j ectDisposedException. , Dispose (). , AggregateException, , . , . , , , , AggregateException. , , , . , , .
|
|
, Wait () . Main (), , tsk tsk2.
// Wait().
Using System;
Using System.Threading;
Using System.Threading.Tasks;
class DemoTask {
// , , static void MyTask() {
Console.WriteLine("MyTask() " + Task.Currentld + " ");
for(int count = 0; count < 10; count++) {
Thread.Sleep(500);
Console.WriteLine(" MyTask() #" + Task.Currentld +
", " + count);
}
Console.WriteLine("MyTask " + Task.Currentld + " ");
}
static void Main() {
Console.WriteLine(" .");
// .
Task tsk = new Task(MyTask);
Task tsk2 = new Task(MyTask);
// , tsk.Start(); tsk2.Start();
Console.WriteLine(" tsk: " + tsk.Id); Console.WriteLine(" tsk2: " + tsk2.Id);
// Main() ,
// tsk tsk2 tsk.Wait (); tsk2.Wait ();
Console.WriteLine(" .");
}
}