2
我有一个Gtk.Menu与4 MenuItems。下面的代码被执行,每秒改变每个菜单项的Label.Text:更改Gtk.Label.Text并不总是工作
double d = new Random().NextDouble();
for (int i = 0; i < 4; i++)
{
((Label)((MenuItem)menu.Children[i]).Child).Text = d.ToString();
}
我使用单2.10.8.1用在Ubuntu Linux MonoDevelop的3.0.3.2。
问题
的问题是,并不是所有的标签都得到更新(有时只有第一和第二,有时只有第一个和最后一个)。
我快速的黑客
我可以让1毫秒线程睡在每个循环解决这个问题:
for (int i = 0; i < 4; i++)
{
((Label)((MenuItem)menu.Children[i]).Child).Text = d.ToString();
Thread.Sleep(1); // HACK !!!
}
问题
- 的原因是什么对于这个问题?
- 什么是更好的解决方案?
非常感谢,这正是我一直在寻找的。 – sergej