小编Iva*_* P.的帖子

封闭中的Foreach变量.为什么这些片段的结果不同?

任何人都可以解释为什么这个片段:

// Create required tasks
foreach (var messageToSend in messagesToSend)
{
  EmailMessage messageToBeSent = messageToSend;
  Task<bool> processingTask = new Task<bool>(() => SendMessage(messageToBeSent));
  processingTask.Start();
}
Run Code Online (Sandbox Code Playgroud)

与此不同的是:

// Create required tasks
foreach (var messageToSend in messagesToSend)
{
  Task<bool> processingTask = new Task<bool>(() => SendMessage(messageToSend));
  processingTask.Start();
}
Run Code Online (Sandbox Code Playgroud)

在第一个片段中,所有任务都以自己的消息开头,而在第二个片段中,所有任务都以相同的消息开头?

Resharper给出了这样的描述:"在关闭时访问foreach变量.使用不同版本的编译器编译时可能会有不同的行为." 为什么它会有不同的行为?

.net c# multithreading task

8
推荐指数
1
解决办法
6837
查看次数

如何在Visual Studio 2013中进行并行构建?

根据这篇MSDN文章:

http://msdn.microsoft.com/en-us/library/cyz1h6zd.aspx

一个"可以为C++和C#项目运行多处理器构建." 使用IDE.我的解决方案只包含C#项目,但是当我执行"构建解决方案"时,我只能在任务管理器和一个csc.exe进程中看到一个MSBuild进程.

在工具 - >选项 - >项目和解决方案 - >构建和运行中我将"最大并行项目构建数"设置为4,而我的计算机有4个核心.

是否可以设置VS2013并行构建我的解决方案项目?

c# msbuild parallel-builds visual-studio-2013

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

如何在DocumentDB中执行现有的存储过程?

我想在DocumentDB中创建一个存储过程,并在以后需要时使用它.要执行存储过程,我需要知道storedProcedureLink.当我使用CreateStoredProcedureAsync方法注册存储过程时,我得到了链接,如果我想稍后执行此存储过程,我应该自己存储此链接吗?如果我所知道的是程序名称,我可以执行存储过程吗?从所有的例子中我发现我需要在需要执行它之前创建并注册存储过程,是不是这样呢?

stored-procedures azure azure-cosmosdb

3
推荐指数
1
解决办法
5530
查看次数