如何在Task中传递多个参数

J R*_*R B 10 c# performance multithreading task

我有一个函数Ge​​tPivotedDataTable(数据,"日期","id","标志")返回透视格式的数据.我想使用Task调用此方法但是如何在Task中传递多个参数.

Mar*_*Put 28

您可以使用lambda表达式或Func来传递参数:)

public Form1()
{
    InitializeComponent();

    Task task = new Task(() => this.GetPivotedDataTable("x",DateTime.UtcNow,1,"test"));
    task.Start();
}

public void GetPivotedDataTable(string data, DateTime date, int id, string flag)
{
    // Do stuff
}
Run Code Online (Sandbox Code Playgroud)

  • 虽然注意更改变量(例如使用单独的ID启动多个任务) - 然后您必须制作变量的本地副本:http://stackoverflow.com/questions/10179691/passing-arguments-with-changing-values-对任务的行为#10179856. (2认同)