нарушение доступа при записи в файлы - PullRequest
0 голосов
/ 06 июля 2018

Я пишу несколько файлов одновременно в C #. Я сочиняю видео из нескольких фотографий и асинхронно сохраняю их в файлы в одной папке. Может случиться так, что одновременно может быть 2-3 сбережения. Иногда после нескольких накоплений программа вылетает, и я получаю:

Программа '...' вышла с кодом -1073741819 (0xc0000005) «Нарушение доступа».

 if (images % framesPerIO == 0 )
        {
            MediaComposition clone = composition.Clone();
            int videoNumber = images / framesPerIO;
            Debug.WriteLine("Reseting clip from" +videoNumber.ToString());
            composition = new MediaComposition();
            CreateVideo(videoNumber, clone);     
        }

private async Task CreateVideo(int videoNumber, MediaComposition clone)
    {


        Debug.WriteLine("Creating xml"+videoNumber.ToString());
            StorageFile video = await storageFolder.CreateFileAsync("video" + videoNumber.ToString() + ".xml", CreationCollisionOption.ReplaceExisting);
            Debug.WriteLine("xml Created" + videoNumber.ToString());


            DateTime now = DateTime.Now;
            Debug.WriteLine("SavingAsync XML " + video.DisplayName);
            await clips.SaveAsync(video);
            Debug.WriteLine("SavedAsync "+video.DisplayName + (DateTime.Now - now).ToString());


    }

Теперь у меня есть 2 вопроса:

  1. Могу ли я сделать точку останова, чтобы узнать, где в коде проблема случается?
  2. Может ли быть так, что нарушение доступа происходит потому что нет последовательной памяти на диске, так как другой поток начинает создавать новый файл? Если так, как я могу это исправить?
...