Consume descartado Arquivo mapeado de memória

Por favor, desculpe-me se esta é uma pergunta ruim, pois não sou bom com arquivos mapeados na memória. Estou usando arquivos mapeados de memória no meu projeto. Estou rastreando os arquivos em andamento e o arquivo que já foi processado nos arquivos mapeados na memória. Eu tenho dois arquivos mapeados de memória. No primeiro arquivo mapeado na memória, acompanho os arquivos processados e no segundo arquivo mapeado na memória, acompanho os arquivos em processamento. Portanto, quando o processamento é concluído em um arquivo específico, faço uma entrada no primeiro arquivo mapeado na memória e removo a entrada do segundo arquivo mapeado. Agora, o problema é que, se todos os arquivos forem processados, estou descartando o segundo objeto de arquivo mapeado na memória. Mas quando o usuário adiciona mais arquivos para processamento, estou inicializando um novo objeto de arquivo mapeado na memória com o mesmo nome que o segundo nome do arquivo mapeado na memória. E quando tento acessar esse segundo arquivo, ele dá uma exceção "o identificador de segurança foi fechado".

Observe: eu tenho que descartar o segundo objeto de arquivo mapeado na memóri

Por favor sugira

PRIMEIRA ATUALIZAÇÃO Função que grava o primeiro arquivo mapeado na memória

Public void WriteFile()
{
    DialogResult result = folderBrowserDialog1.ShowDialog();
        if (result == DialogResult.OK)
         {
              mmf1 = MemoryMappedFile.OpenExisting("Some File Name1");
              Class1 Class1obj = new Class1();
              string foldername = folderBrowserDialog1.SelectedPath;
              Class1obj.CreateMMFFile1(foldername, mmf1, "MMF_IPC1");
         }
        Class1.RefreshExplorer();
}

Função que grava o segundo arquivo mapeado na memória:

public void ProcessFiles()
        {
            DialogResult result = folderBrowserDialog1.ShowDialog();
            if (result == DialogResult.OK)
            {
                mmf = MemoryMappedFile.OpenExisting("Some File Name");
                Class1 Class1obj = new Class1();
                string foldername = folderBrowserDialog1.SelectedPath;
                Class1obj.CreateMMFFile1(foldername, mmf, "MMF_IPC");
            }
            Class1.RefreshExplorer();            
        }

unção que anexa o primeiro arquivo e descarta o segundo arquiv

Public void AppendFile()
{

  Class1 Class1obj = new Class1();
  string foldername = folderBrowserDialog1.SelectedPath;
  Class1obj.AppendToMMFFile(mmf1, "MMF_IPC1");
  Class1.RefreshExplorer();
  mmf.Dispose();

}

gora, quando o usuário adiciona um novo arquivo para processar oProcessFiles () função @ será chamada e eu recebo uma exceção. Deixe-me saber o que mais posso fazer para elaborar mais sobre isso. O CreateMMFFile1 () eCreateMMFFile ()ão funções que gravam arquivos mapeados na memóri

Second UPDATE Aqui está a função AppendToMMFFile, que acrescenta os primeiros dados do arquivo MMF no segundo arquivo MM

Public void AppendToMMFFile()
{
StringBuilder sb = new StringBuilder();
            string str = string.Empty;
            try
            {
                using (var stream = mmf.CreateViewStream())
                {
                    System.IO.BinaryReader reader = new System.IO.BinaryReader(stream, System.Text.Encoding.Unicode);
                    sb.Append(reader.ReadString());
                    sb.Append(str + "\r\n");
                }
                using (var stream = mmf1.CreateViewStream())
                {
                    System.IO.BinaryWriter writer = new System.IO.BinaryWriter(stream, System.Text.Encoding.Unicode);
                    writer.Write(sb.ToString());
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Unable to monitor memory file. " + ex);
            }
}

questionAnswers(0)

yourAnswerToTheQuestion