C# Windows Phone 7-如何从while循环更新UI?
如何从一段时间、foreach、for等循环更新Windows Phone应用程序中的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
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的答案。