[英]Thread Sleep in for cycle doens't work wp7
我对这段代码有疑问。 我需要暂停两秒钟才能看到图像。 所以我让线程进入睡眠状态,但它不起作用。 我需要等待两秒钟,直到我转到下一个i
值。
for (int i = 0; i < media_count; i++)
{
if (type_by_order[i].ToString().Equals("video"))
Play_Graphics(name_file_by_order[i]);
if (type_by_order[i].ToString().Equals("image"))
ImageReadDecode(name_file_by_order[i]);
Thread.Sleep(2000);
}
你能告诉我有什么问题吗? 这不适用于Windows Phone 7吗?
正如汉斯指出的那样,你正在UI线程上睡觉。 这将阻止UI更新,直到完成for循环完成。 确保您在后台睡眠,然后在UI线程上更新。 这是和伪代码示例
BackgroundWorker bgw = new BackgroundWorker();
bgw.DoWork += (sender, e) = {
for loop {
Deployment.Current.Thread.BeginInvoke(() => {
ImageReadDecode
});
Thread.Sleep(2000);
}
}
bgw.RunAsync();
请注意,使用BeginInvoke并不保证您的图像可以同时按顺序添加/加载。 它将它推送到UI线程,并让UI线程确定何时添加它。
希望这有一定道理。 关于如何处理UI线程和后台线程的stackoverflow上有足够的示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.