使用不同文件名的TPL我使用任務將多個文件上傳到sftp服務器。但是目前發生的情況是,當多個任務並行執行時,會生成相同的「文件名」。我想確保每次都生成一個獨特的文件名。使用Datetime.Now
//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);
});
}
太棒了。這工作,是比我使用的thread.Sleep(1000)更快的解決方案。 – Saad