Я думаю, что это довольно очевидно в названии; Я хочу скопировать файл, не дожидаясь результата.Возможно ли «запустить» копию (большого) файла, не дожидаясь результата?
Functionaly Я хочу это:
static void Main(string[] args)
{
string strCmdText = @"/C xcopy c:\users\florian\desktop\mytestfile.fil p:\";
System.Diagnostics.Process.Start("CMD.exe", strCmdText);
Console.WriteLine("Finished !");
}
В основном мой основной поток освобождается через несколько миллисекунд. Я стараюсь сделать так:
static void Main(string[] args)
{
var t = Task.Run(() => Copy(@"c:\Users\florian\Desktop\mytestfile.fil", "p:"));
}
private static void Copy(string source, string destination)
{
using (FileStream SourceStream = File.Open(source, FileMode.Open))
{
using (FileStream DestinationStream = File.Create(destination + source.Substring(source.LastIndexOf('\\'))))
{
SourceStream.CopyToAsync(DestinationStream);
}
}
}
Мой mytestfile.fil создается в моей папке, но ее размер 0kb.
С уважением,
В основном вы должны будете дождаться завершения задачи (Task.Wait (...)). В противном случае консоль выйдет и завершит рабочий поток –
Итак ... что не так с первым подходом (используя 'cmd.exe' и' Process.Start')? Если это то, что вы хотите, что с этим не работает для вас? –
@samir Да, но я не хочу ждать ;-) – Florian