我需要通过发送一些参数来调用异步函数。没有参数也可以,但是我需要通过其签名发送参数。
这是我的代码:
// 这是我当前运行的无参数代码。
private int Counting()
{
for (int i = 0; i < 2000; i++)
{
Console.WriteLine(i.ToString());
Thread.Sleep(5);
}
return 0;
}
private async void button2_Click(object sender, EventArgs e)
{
Task<int> task = new Task<int>(Counting);
task.Start();
MessageBox.Show("Job started ..");
int countValue = await task;
MessageBox.Show("Job Done");
}
// 但是我需要这样做:
private int Counting(int maxCount)
{
for (int i = 0; i < maxCount; i++)
{
Console.WriteLine(i.ToString());
Thread.Sleep(5);
}
return 0;
}
private async void button2_Click(object sender, EventArgs e)
{
Task<int> task = new Task<int>(Counting(2000));
task.Start();
MessageBox.Show("Job started ..");
int countValue = await task;
MessageBox.Show("Job Done");
}
我该怎么做?
答案 0 :(得分:3)
您需要使用lambda语法
Task<int> task = new Task<int>(() => Counting(2000));