父线程里如何循环生成子线程?
我试着这样写,程序并不是并行运行的
Task parent = Task.Factory.StartNew(() =>
{
foreach (string str in sStr)
{
Task child = Task.Factory.StartNew(() =>
{
WorkProcess(str);
},TaskCreationOptions.AttachedToParent);
}
});
不过我这样写就可以并行执行
Action<string> basicTask = WorkProcess;
Parallel.ForEach(sStr, basicTask);
请问下第一种方式有没有什么好的办法,
我试着这样写,程序并不是并行运行的
Task parent = Task.Factory.StartNew(() =>
{
foreach (string str in sStr)
{
Task child = Task.Factory.StartNew(() =>
{
WorkProcess(str);
},TaskCreationOptions.AttachedToParent);
}
});
不过我这样写就可以并行执行
Action<string> basicTask = WorkProcess;
Parallel.ForEach(sStr, basicTask);
请问下第一种方式有没有什么好的办法,
parent和child.AsyncState
task不是每个都生成新线程的,可能附加到当前想成,
TaskCreationOptions.Longruning好像可能