我正在使用任务将多个文件上传到 sftp 服务器。但是目前正在发生的是,当多个任务并行执行时,会生成相同的“文件名”。我想确保每次都生成一个不同的文件名。
//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);
});
}