2012-07-02 2 views
0

Я использую этот код для записи асинхронно в файлАсинхронный FileStream Пишет «NUL» в файл

public static void AsyncWrite(string file, string text) 
    { 
     try 
     { 
      byte[] data = Encoding.Unicode.GetBytes(text);     

      using (FileStream fs = new FileStream(file, FileMode.Create, 
       FileAccess.Write, FileShare.Read, 1, true))           
        fs.BeginWrite(data, 0, data.Length, null, null); 
     }    
     catch 
     { 

     }    
    } 

По какой-то причине, время от времени, а не писать текст в файл, как и ожидалось, Notepad ++ показывает следующие Ouput:

enter image description here

+0

Можете ли вы показать Hex-дамп результата? –

+0

Не уверен, как это сделать ... –

ответ

2

BeginWrite асинхронные, так что может случиться так, что поток замыкается через using заявления в то время как другие вещи происходят.

Я не использовал using при работе асинхронного письма. Вместо этого я создаю правильный метод обратного вызова и закрою поток. Это также даст вам возможность позвонить EndWrite в соответствии с рекомендациями.

+0

Мои глаза благодарны вам. Я превратился в эпилептический со всеми этими NULL мигающими линиями на моих журнальных окнах. Умный ответ, это не произошло. Большое спасибо –

Смежные вопросы