Task tsk = Task.Factory.StartNew(MyTask);
MyTask ().
StartNew () , . .
-
, , : - . , - . . - , . - . , - .
- . MyTask () -.
// - .
Using System;
Using System.Threading;
Using System.Threading.Tasks;
class DemoLambdaTask { static void Main() {
Console.WriteLine(" .");
// - .
Task tsk = Task.Factory.StartNew(() => {
Console.WriteLine(" ");
for (int count = 0; count < 10; count++) {
Thread.Sleep(500);
Console.WriteLine(" " + count);
}
Console.WriteLine(" ");
});
// tsk. tsk.Wait();
/ tsk. tsk.Dispose();
Console.WriteLine(" .");
}
}
.
.
.
- , , tsk. Dispose () , tsk. Wait (). , Dispose () . , tsk. Dispose () tsk.Wait (). , .
TPL . , . , , ContinueWith (), Task. :
|
|
public Task ContinueWith(Action<Task> _)
_ , . Action Task. , Action, , .
public delegate void Action<in T>(T obj)
Task.
.
// .
Using System;
Using System.Threading;
Using System.Threading.Tasks;
class ContinuationDemo {
// , , static void MyTaskO {
Console.WriteLine("MyTask() ");
for(int count = 0; count < 5; count++) {
Thread.Sleep(500);
Console.WriteLine(" MyTaskO " + count);
}
Console.WriteLine("MyTask ");
}
// , , static void ContTask(Task t) {
Console.WriteLine(" ");
for(int count = 0; count < 5; count++) {
Thread.Sleep(500);
Console.WriteLine(" " + count);
}
Console.WriteLine(" ");
}
static void Main() {
Console.WriteLine(" .");
// .
Task tsk = new Task(MyTask);
// .
Task taskCont = tsk.ContinueWith(ContTask);
// , tsk.Start ();
// . taskCont.Wait();