相关疑难解决方法(0)

Parallel.ForEach vs Task.Factory.StartNew

下面的代码片段有什么区别?两个都不会使用线程池线程吗?

例如,如果我想为集合中的每个项目调用一个函数,

Parallel.ForEach<Item>(items, item => DoSomething(item));

vs

foreach(var item in items)
{
  Task.Factory.StartNew(() => DoSomething(item));
}
Run Code Online (Sandbox Code Playgroud)

c# parallel-extensions task-parallel-library c#-4.0

260
推荐指数
4
解决办法
13万
查看次数

TaskCreationOptions.LongRunning选项和ThreadPool

TPL使用任务计划程序来协调任务.根据官方文档,默认任务调度程序使用线程池,但如果显示TaskCreationOptions.LongRunning选项,则它将为该任务创建专用线程(A).

问题:截至目前,Visual Studio 2010的MSDN文档尚未就绪,当前的在线MSDN尚未最终确定; 有谁知道(A)是真还是假?

c# scheduled-tasks .net-4.0 threadpool task-parallel-library

24
推荐指数
2
解决办法
1万
查看次数

我应该使用线程或任务 - 多客户端模拟

我正在编写一个客户端模拟程序,其中所有模拟客户端都针对服务器运行一些预定义的例程 - 这是一个在具有四个实例的azure中运行的Web服务器.

连接到服务器后,所有模拟客户端都运行相同的例程.

在任何时候,我都希望使用我的程序模拟300到800个客户端.

我的问题是:我应该创建N个客户端类实例并在N个不同的线程中运行它们吗?要么

我应该使用任务库来做这些事吗?

c# simulation multithreading task-parallel-library

11
推荐指数
1
解决办法
4798
查看次数