2
我很新的C#编程,所以请不要在以下问题的意思。 我想要定期更改标签(MonoTouch)的背景颜色,但它不会。 无论如何,“_hue”的值会定期打印在控制台中。C#/ MonoTouch启动器:如何定期更改标签的颜色?
public void _timer_elapsed(object sender, ElapsedEventArgs e)
{
_hue -= 0.1f;
lblScreen.BackgroundColor = UIColor.FromHSB (_hue,_sat,_bri);
Console.WriteLine (_hue);
}
你们有没有提示?
THANX! :-)
请指定您正在使用什么类型的计时器。如果is是'System.Timers.Timer',则需要使用'BeginInvokeOnMainThread'或'InvokeOnMainThread'。您无法从后台线程更新UI。 – jonathanpeppers
@ Jonathan.Peppers可能适用于:-),并且应该将他的评论转换为答案!大多数现有的UI工具包(包括iOS)只能从主线程**安全**,而大多数定时器将在单独的线程上运行,并在此(单独的,而非主线程)线程上通知您。这要求您使用建议的方法回调主线程,以便更新任何UI元素。 – poupou