このスニペットの理由を説明できる人はいますか:
// Create required tasks
foreach (var messageToSend in messagesToSend)
{
EmailMessage messageToBeSent = messageToSend;
Task<bool> processingTask = new Task<bool>(() => SendMessage(messageToBeSent));
processingTask.Start();
}
これとは異なる動作:
// Create required tasks
foreach (var messageToSend in messagesToSend)
{
Task<bool> processingTask = new Task<bool>(() => SendMessage(messageToSend));
processingTask.Start();
}
最初のスニペットでは、すべてのタスクが独自のメッセージで始まりますが、2 番目のスニペットでは、すべてのタスクが同じメッセージで始まります。
Resharper は次のように説明しています。なぜ異なる動作をすることがありますか?