Windows PhoneアプリのUIをしばらくの間、foreach、forなどのループから更新するにはどうすればよいですか?
1147 次
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 に答える