什么是(以及我为什么需要)=>在c#中创建任务时

GJK*_*JKH 2 c# vb.net syntax task

对不起,如果这很明显.我正试图从VB.NET跳转到C#,我正在玩任务.在VB.NET中我可以像这样定义一个任务:

    Dim t As New Task(Sub()
                          Threading.Thread.Sleep(1000)
                      End Sub)
Run Code Online (Sandbox Code Playgroud)

任务之后的部分对我有意义,我正在创建一个新方法.

在C#中它看起来像:

        Task t = new Task(() =>
            {
                Thread.Sleep(1000);
            });
Run Code Online (Sandbox Code Playgroud)

我猜这()是说它是一种新方法,但是我需要什么以及为什么=>.

Ree*_*sey 9

=>是C#用于定义lambda表达式的语法.

它是VB Task构造函数中的Sub()/ 的等价物End Sub.

而不是将委托定义为:

Dim del as Action = Sub() Threading.Thread.Sleep(1000)
Run Code Online (Sandbox Code Playgroud)

在C#中,你会写:

Action del = () => Threading.Thread.Sleep(1000);
Run Code Online (Sandbox Code Playgroud)

Task只是将相同的语法移动到构造函数中,并将其声明为内联.