【发布时间】:2012-07-30 06:42:55
【问题描述】:
所有,我有一个名为TaskSpin 的通用方法,在这个方法中我启动了一个Task 和一个关联的continutation
public TaskSpin(Func asyncMethod, object[] methodParameters)
{
...
asyncTask = Task.Factory.StartNew<bool>(() =>
asyncMethod(uiScheduler, methodParameters));
asyncTask.ContinueWith(task =>
{
// Finish the processing update UI etc.
}
...
}
现在的问题是我想使用TaskSpin 运行多个方法,但我需要限制这些方法一次运行一个。所以在一些DataGridView 中的foreach 行我想做类似的事情
foreach (DataGridViewRow row in this.DataGridViewUrg.Rows)
TaskSpin(Run(DrgDataRowInfo(row.Index)));
但是,在上面的TaskSpin 方法将立即退出,导致TaskSpin 在另一个线程上分离下一个方法。这是不好的,因为Run 方法会写入一组通用文件。将这些作业排队的最佳方式是什么?
【问题讨论】:
-
有没有理由不能通过将这些动作扔给调度程序来使用内置队列?
-
我不知道,但我不熟悉这样做...感谢您的时间。
标签: c# winforms queue task-parallel-library