CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
Task tasks = PeriodicTaskFactory.Start(() => LongRunningOperation(), intervalInMilliseconds: 1000, synchronous: false, cancelToken: cancellationTokenSource.Token);
int taskId = Task.WaitAny(tasks);
和我LongRunningOperation異步任務如何從一個方法
private String LongRunningOperation()
{
...
return proj.Name;
}
返回值回,但問題是如何從LongRunningOperation
方法早在Task
獲得價值。方法tasks.Results
不存在。我想從每個任務中獲得價值。
我從這裏得到PeriodicTaskFactory類
Is there a Task based replacement for System.Threading.Timer?
謝謝
如果'Start'返回了一個'Task',那麼您將無法使用'Task.WaitAny'。我認爲你的意思是'開始'返回'任務[]'。 – dcastro
@dcastro「開始」返回「返回Task.Factory.StartNew(mainAction,cancelToken,TaskCreationOptions.LongRunning,TaskScheduler.Current);」 – senzacionale
然後這行是錯誤的:'int taskId = Task.WaitAny(tasks);'。沒有接受單個任務的'WaitAny'超載。 – dcastro