我正在尝试模拟一个过程,在该过程中,按钮被依次设置为一种颜色,然后每隔几秒钟恢复到其先前的颜色。
问题是,我不确定如何在不阻止UI线程的情况下遍历集合...我不喜欢使用thread.sleep,但这是我在SO上发现的。
有人帮助我吗?在下面为“开始”按钮单击输入邮政编码
private void StartTest_Click(object sender, RoutedEventArgs e)
{
//tabControl.SelectedIndex = 3;
// Emulate buttons being processed
Dispatcher.Invoke(() =>
{
new Task(() =>
{
selectedButtons.All(bSelected=>
{
bSelected.Background = resourceDictionary["ProcessingButtonColour"] as Brush;
Thread.Sleep(3000);
bSelected.Background = resourceDictionary["HoverOverColourInactive"] as Brush;
return true;
});
}).Start();
});
}
答案 0 :(得分:1)
如果从用户界面中单击按钮,然后在用户界面线程上单击,则您不需要@RestController
@RequestMapping("/test")
public class TestController {
@RequestMapping(value = "/test", method = RequestMethod.GET)
public String test() {
String results = "";
results = "foo";
//<-- insert custom code here (if exists) each time method is invoked
results += "bar";
return results;
}
}
。只需循环浏览按钮并更改其颜色即可。没有理由Dispatcher.Invoke
仅返回虚拟Select
值。另外,几乎没有理由不使用true
构造函数,尤其是不要在UI线程上运行工作。这样的事情应该起作用:
Task