C# Windows Phone 7-如何从while循环更新UI?

C# Windows Phone 7-如何从while循环更新UI?,c#,windows-phone-7,user-interface,windows-phone,C#,Windows Phone 7,User Interface,Windows Phone,如何从一段时间、foreach、for等循环更新Windows Phone应用程序中的UI 您是否考虑过为此使用额外的线程 public MainPage() { InitializeComponent(); Thread thread = new Thread(() => ReadFile(/*params*/)); thread.Start(); } private

如何从一段时间、foreach、for等循环更新Windows Phone应用程序中的UI

您是否考虑过为此使用额外的线程

public MainPage()
        {
            InitializeComponent();
            Thread thread = new Thread(() => ReadFile(/*params*/));
            thread.Start();
        }

        private void ReadFile(/*params*/)
        {   
            while(/*condition*/)
            {
                /* READ FILE */

                //send task to UI thread to add object to list box
                Dispatcher.BeginInvoke(() => listBox1.Items.Add("YOUR OBJECT"));
            }
        }

非UI线程中正在发生长期操作,是什么使该UI线程不会冻结。在每次循环迭代中,非UI线程通过Dispatcher.BeginInvoke向UI线程发送操作,以将新对象添加到listbox。

您是否考虑过为此使用其他线程

public MainPage()
        {
            InitializeComponent();
            Thread thread = new Thread(() => ReadFile(/*params*/));
            thread.Start();
        }

        private void ReadFile(/*params*/)
        {   
            while(/*condition*/)
            {
                /* READ FILE */

                //send task to UI thread to add object to list box
                Dispatcher.BeginInvoke(() => listBox1.Items.Add("YOUR OBJECT"));
            }
        }

非UI线程中正在发生长期操作,是什么使该UI线程不会冻结。在每次循环迭代中,非UI线程通过Dispatcher.BeginInvoke向UI线程发送操作,以将新对象添加到listbox。

方法与不使用while、foreach、for等循环相同。问题是什么?用户界面在循环过程中冻结,更具体地说,我正在寻找一种方法,在我用来读取文本文件的while循环过程中,将大量项目添加到列表框中,这样它们就会一个接一个地出现,而不是延迟1或2秒。您可以在每次迭代中尝试
UpdateLayout()
,但同意Scada的答案。与无while、foreach、for等循环相同。问题是什么?用户界面在循环过程中冻结,更具体地说,我正在寻找一种方法,在我用来读取文本文件的while循环过程中,将大量项目添加到列表框中,这样它们就会一个接一个地出现,而不是延迟1或2秒。您可以在每次迭代中尝试
UpdateLayout()
,但同意Scada的答案。