C#任务返回值
我正在申请C#Net 4.5。我试图通过任务使用多线程。我有一系列的任务可以运行一些进程。我希望任务返回一个名为enumSignal的枚举。但是我不知道该怎么做,下面的代码是我的尝试 它突出显示行“\u taskFactory.StartNew(\u indicator[I].Run)”,并显示以下方法之间调用不明确的消息C#任务返回值,c#,multithreading,C#,Multithreading,我正在申请C#Net 4.5。我试图通过任务使用多线程。我有一系列的任务可以运行一些进程。我希望任务返回一个名为enumSignal的枚举。但是我不知道该怎么做,下面的代码是我的尝试 它突出显示行“\u taskFactory.StartNew(\u indicator[I].Run)”,并显示以下方法之间调用不明确的消息 public void RunIndicators() { _taskFactory = new TaskFactory();
public void RunIndicators()
{
_taskFactory = new TaskFactory();
Task<enumSignal>[] taskIndicator = new Task<enumSignal>[_indicator.Length];
for (int i = 0; i < taskIndicator.Length; i++)
{
taskIndicator[i] = _taskFactory.StartNew(_indicator[i].Run);
}
Task.WaitAll(taskIndicator);
}
public void RunIndicators()
{
_taskFactory=新的taskFactory();
任务[]任务指示器=新任务[_indicator.Length];
对于(int i=0;i
当存在多个重载时,C#编译器不能总是推断泛型委托类型。尝试调整StartNew()
调用,如下所示:
_taskFactory.StartNew((Func<enumSignal>)_indicator[i].Run)
\u taskFactory.StartNew((Func)\u指示符[i]。运行)
…或者,如果您愿意:
_taskFactory.StartNew<enumSignal>(_indicator[i].Run)
\u taskFactory.StartNew(\u指示符[i].Run)
这假设
\u指示符[i]。Run()
没有参数,并返回一个enumSignal
您在TaskFactory中有两个StartNew方法吗?\u指示符[i]的类型是什么。Run
是这样说的,但我不明白为什么。System.Threading.Tasks.TaskFactory.StartNew(System.Func)和System.Threading.Tasks.TaskFactory.StartNew(System.Action)可能与_指示符[I]重复。运行时应返回枚举信号