Task任务并行的问题

bios8086 2011-08-17 10:28:48
父线程里如何循环生成子线程?
我试着这样写,程序并不是并行运行的
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);
请问下第一种方式有没有什么好的办法,
...全文
122 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bios8086 2011-08-18
  • 打赏
  • 举报
回复
哦,我有个小错误,没看到,呵呵!
feixuyue 2011-08-18
  • 打赏
  • 举报
回复
TaskCreationOptions.AttachedToParent
task不是每个都生成新线程的,可能附加到当前想成,
TaskCreationOptions.Longruning好像可能
  • 打赏
  • 举报
回复
Task parent = Task.Factory.StartNew()应该是在异步线程中的,你可以分别看一下异步状态
parent和child.AsyncState
kimma 2011-08-17
  • 打赏
  • 举报
回复
等待答案

110,525

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧