タスクを使用して複数のファイルをsftpサーバーにアップロードしています。しかし、現在起こっていることは、複数のタスクが並行して実行されるときに同じ「fileName」が生成されているということです。毎回個別のファイル名が生成されるようにしたい。
//Simplified version of my code:
processingTasks = 1000;
while (processingTasks > 0)
{
processingTasks --;
Task<string> task = Task<string>.Factory.StartNew(() =>
{
string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt";
return UploadFileToSFTP(fileName, fileContent);
});
}
次のことは私にとってうまくいき、明確な日時のファイル名を私に与えますか、それともこれを行うためのより良い方法がありますか?
processingTasks = 1000;
while (processingTasks > 0)
{
processingTasks --;
Task<string> task = Task<string>.Factory.StartNew(() =>
{
lock(file) //Will only one task go inside this at a time?
{
Thread.Sleep(1000);
string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt";
}
return UploadFileToSFTP(fileName, fileContent);
});
}