.net Task.start新的初学者问题
错误1委托“System.Action”不接受2个参数 我得到了上面的错误。我不明白出了什么问题 编辑:为什么它接受单个参数.net Task.start新的初学者问题,.net,c#-4.0,task-parallel-library,.net,C# 4.0,Task Parallel Library,错误1委托“System.Action”不接受2个参数 我得到了上面的错误。我不明白出了什么问题 编辑:为什么它接受单个参数 Task.Factory.StartNew((param,param2) => { Console.WriteLine("Test"); }, TaskCreationOptions.None); Task.Factory.StartNew((参数1)=> { 对于(int j=0;j
Task.Factory.StartNew((param,param2) => { Console.WriteLine("Test"); },
TaskCreationOptions.None);
Task.Factory.StartNew((参数1)=>
{
对于(int j=0;j<10;j++)
{
WriteLine(string.Format(“任务:{0},输出{1}-{2}”),
param1,j.ToString(),param1));
}
},string.Format(“Tast Count”+ic++.ToString());
StartNew
接受一个操作
委托,该委托被定义为:
Task.Factory.StartNew((param1) =>
{
for (int j = 0; j < 10; j++)
{
Console.WriteLine(string.Format("Task : {0}, outputing {1}- {2}",
param1, j.ToString(), param1));
}
}, string.Format("Tast Count " + ic++.ToString()));
也就是说,一个没有返回值和参数的方法。您正试图将两个参数传递到操作中:param
和param2
您的代码应该如下所示:
public delegate void Action()
另外,
TaskCreationOptions
附加到自定义任务工厂,而不是默认任务工厂。StartNew
接受一个操作
委托,该委托定义为:
Task.Factory.StartNew((param1) =>
{
for (int j = 0; j < 10; j++)
{
Console.WriteLine(string.Format("Task : {0}, outputing {1}- {2}",
param1, j.ToString(), param1));
}
}, string.Format("Tast Count " + ic++.ToString()));
也就是说,一个没有返回值和参数的方法。您正试图将两个参数传递到操作中:param
和param2
您的代码应该如下所示:
public delegate void Action()
另外,
TaskCreationOptions
附加到自定义任务工厂,而不是默认的任务工厂。task.factory.StartNew
采用1个参数,即系统。操作
和一个系统。根据
封装一个没有参数且不返回
价值观
看样子,你想传递两个参数?您没有将TaskCreationOptions.None传递给StartNew()。如果您确实想传递选项(您不想传递选项,因为您使用的是“无”),那么您可以创建一个自定义任务工厂(将选项传递给其构造函数)。task.factory.StartNew
接受一个参数,即系统.Action
和一个系统。根据
封装一个没有参数且不返回
价值观
看样子,你想传递两个参数?您没有将TaskCreationOptions.None传递给StartNew()。如果您确实想传递选项(您不想传递选项,因为您使用的是“无”),那么您可以创建一个自定义任务工厂(将选项传递给它的构造函数)。对于task.factory.StartNew
方法,有以下步骤。你在问题中提到的两个方面是:
Task.Factory.StartNew(() => { Console.WriteLine("Test"); });
// ^^ Note: no "param" or "param2".
在没有编译的第一个示例中,它与上一个示例等效。采用多个参数的Task.Factory.StartNew
没有重载。Task.Factory.StartNew
方法没有重载。你在问题中提到的两个方面是:
Task.Factory.StartNew(() => { Console.WriteLine("Test"); });
// ^^ Note: no "param" or "param2".
在没有编译的第一个示例中,它与上一个示例等效。Task.Factory.StartNew
没有重载,它接受多个参数。我认为TaskCreationOptions也不会传递给StartNew()。@Sepster确实-它们是用于自定义TaskFactory的。我已经编辑了我的答案。谢谢!:)但这并不能解释为什么它只使用一个参数。我认为TaskCreationOptions也不会传递给StartNew()。@Sepster确实如此-它们是用于自定义TaskFactory的。我已经编辑了我的答案。谢谢!:)但这并不能解释为什么它只使用一个参数。