当我将客户端连接到服务器时,客户端开始将一些 dll 文件复制到服务器。发生这种情况时,表单会卡住,直到复制完成(有一些大文件)。
我希望让这个副本在后台运行,因为我希望用户能够继续与表单交互(打开一些浏览对话框等)。我将确保复制完成。
我想线程在这里会有所帮助,但我是线程的新手,我也不确定这是不是这样。
下面是复制dll文件的代码:
private bool copyDllsToServer()
{
//string targetPath = @"\\" + remoteIpAddress + "\\" + userName + batchRunPath;
string targetPath = "Z:\\nBatcher\\" + userName + batchRunPath;
if (!Directory.Exists(targetPath))
Directory.CreateDirectory(targetPath);
else
{
Directory.Delete(targetPath, true);
Directory.CreateDirectory(targetPath);
}
for (int i = 0; i < listOfFilesToCopy.Count; i++)
{
if (listOfPathToCopy[i].CompareTo(omekPath + shadersPath) == 0)
{
if (!Directory.Exists(targetPath + "Shaders"))
Directory.CreateDirectory(targetPath + "Shaders");
if (!File.Exists(targetPath + "Shaders\\" + listOfFilesToCopy[i]))
File.Copy(listOfPathToCopy[i] + listOfFilesToCopy[i], targetPath + "Shaders\\" + listOfFilesToCopy[i], true);
}
else
{
if (!File.Exists(targetPath + listOfFilesToCopy[i]))
File.Copy(listOfPathToCopy[i] + listOfFilesToCopy[i], targetPath + listOfFilesToCopy[i], true);
}
}
return true;
}
有任何想法吗?