1

Windows PhoneアプリのUIをしばらくの間、foreach、forなどのループから更新するにはどうすればよいですか?

4

1 に答える 1

5

これに追加のスレッドを使用することを検討しましたか?

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スレッドに送信し、新しいオブジェクトをリストボックスに追加します。

于 2012-09-15T22:24:42.363 に答える