我有复制文件的foreach循环。我想把标签设为“工作..”而foreach循环正在复制文件。我试过:
label.text = "Ready";
foreach (file in files)
{
File.Copy(firstDest, secondDest);
label.text = "Working..";
}
label.text = "Ready";但是标签永远不会改变,即使它复制文件一段时间2-3秒。你知道怎么解决这个问题吗?谢谢!
发布于 2019-08-13 13:23:47
您应该在另一个线程中执行复制操作。
label.text = "Ready";
var tasks = Task[files.length];
for (var i=0 ; i<files.length; i++) {
tasks[i] = Task.Run(()=>{
File.Copy(firstDest, secondDest);
});
}
label.text = "Working..";
await Task.WhenAll(tasks);
label.text = "Ready";如果您想在一个任务中全部运行,而不是每个副本并行运行的话。
label.text = "Ready";
var task =Task.Run(()=>{
foreach (file in files){
File.Copy(firstDest, secondDest);
}
});
label.text = "Working..";
await task;
label.text = "Ready";https://stackoverflow.com/questions/57478509
复制相似问题