【发布时间】:2019-04-01 11:37:36
【问题描述】:
我的代码中有线程数组,我将用任务替换它。
Dictionary<string, name> threadnames = new Dictionary<string, name>();
public Thread [] Threads;
string[] nodeKeys;
for (int i = 0; i < nodeKeys.Length; i++)
{
Threads[i] = new Thread(() => ThreadMethod(nodeKey));
Threads[i].Name = nodeKey[i];
names.Add(Threads[i].Name, null);
Threads[i].Start();
}
这是我将线程名称保存在单独的字典中的旧方法。现在我要把它转换成任务,到目前为止我所做的是这个
Dictionary<string, name> threadnames = new Dictionary<string, name>();
string[] nodeKeys;
for (int i = 0; i < nodeKeys.Length; i++)
{
var runningTask = new Task(() => ThreadMethod(nodeKey[i]));
runningTask.Start();
}
既然一切都在 for 循环中,那么所有这些都应该在单个任务中完成吗?或者如果上述方法是正确的,那么我必须获得的任务 ID 是什么?
如果有更好的方法,我们将不胜感激。
【问题讨论】:
-
如果您需要跟踪任务,为什么不简单地将它们添加到
List<Task>?为什么需要名称或 ID? -
那是因为我必须在单独的字典中记录它。
标签: c# multithreading task