为什么我在Windows Phone中使用它时无法从封闭的TextReader中读取

时间:2012-06-10 17:41:50

标签: c# silverlight windows-phone-7

我的Windows手机应用程序中有以下代码:崩溃异常:无法从已关闭的TextReader中读取。

有人可以告诉我为什么,我无法弄清楚什么是错的。

    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());
                    });
                        }



                }

1 个答案:

答案 0 :(得分:3)

此代码在StreamReader关闭后在调度程序线程上执行:

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

像这样改变:

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

这样在当前线程上读取StreamReader,结果在Dispatcher线程上使用。