2012-06-10 4 views
1

У меня есть следующий код в приложении для телефона Windows, который выходит из строя за исключением: Не удается прочитать из закрытого TextReader.Почему я не могу прочитать из закрытого TextReader при использовании его в телефоне Windows

Может кто-нибудь сказать мне, почему, я не могу понять, что случилось.

IsolatedStorageFile ISF = IsolatedStorageFile.GetUserStoreForApplication(); 

       IsolatedStorageFileStream FS = ISF.OpenFile("ipview.txt", FileMode.Open, FileAccess.Read); 

       using (StreamReader SR = new StreamReader(FS)) 
       { 



         while (!SR.EndOfStream) 
         { 
          Dispatcher.BeginInvoke(() => 
        { 
          IPHistoryBox.Items.Add(SR.ReadLine()); 
        }); 
         } 



       } 

ответ

3

Этот код выполняется на диспетчерский нити после StreamReader закрыт:

Dispatcher.BeginInvoke(() => 
{ 
    IPHistoryBox.Items.Add(SR.ReadLine()); 
}); 

изменить это так:

var x = SR.ReadLine(); 
Dispatcher.BeginInvoke(() =>IPHistoryBox.Items.Add(x)); 

Таким образом StreamReader читается на текущем потоке и результат используется в потоке Диспетчера.

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