Task使用start()启动任务,如何传参数
时间: 2024-10-13 22:05:20 浏览: 13
在C#中,如果你使用`Task`类的静态方法如`StartNew`来启动一个新的任务,并希望传递参数,你需要将参数作为`Action`或`Func`类型的委托实例传递。以下是示例:
```csharp
using System.Threading.Tasks;
public class MyClass
{
public void ExecuteTaskWithParams(string param)
{
Func<string, int> actionTask = async (input) =>
{
await Task.Delay(1000);
Console.WriteLine($"Task executed with input '{input}' and received parameter: {param}");
};
Task.Run(actionTask, param); // 参数通过Action委托传递
}
}
public static void Main()
{
MyClass obj = new MyClass();
obj.ExecuteTaskWithParams("example");
}
```
在这个例子中,`ExecuteTaskWithParams`方法接受一个字符串参数,然后创建了一个匿名函数`actionTask`作为参数传递给`Task.Run`。当该任务开始执行时,它会收到之前传递的参数。
阅读全文