Каков наилучший способ открытия файла асинхронно даже до начала копирования. Исключением, которое я получаю, является то, что файл недоступен, поскольку он используется другим процессом.Как открыть файл асинхронно в C#
try
{
using (var sourceStream = new FileStream(pathToDownloadedMedia, FileMode.Open, FileAccess.Read, FileShare.None, bufferSize: 4096, useAsync: true))
{
using (var destinationStream = File.Create(pathToProcessedMedia))
{
await sourceStream.CopyToAsync(destinationStream);
}
}
}
catch (Exception)
{
throw new ApplicationException();
}
Я пробовал аллювиальный, как показано ниже, но без успеха. Такая же ошибка преобладает.
using (var sourceStream = await Task.Factory.StartNew(() => File.Open(pathToDownloadedMedia, FileMode.Open, FileAccess.Read, FileShare.None)))
{
using (var destinationStream = File.Create(pathToProcessedMedia))
{
await sourceStream.CopyToAsync(destinationStream);
}
}
* «Выполнение открытия файла асинхронно» * Ручка открывается синхронно. Почему вы думаете, что открытие асинхронно приведет к ошибке? –
@Sharique Выход из использования удаляет файл –
Вы открываете FileStream с FileShare.None. Вы пробовали это с помощью FileShare.Read? –