你好。我正在开发一个通用应用程序,我遇到了一个看似简单的问题,但无法解决。
我简化了任务,以便本质清楚 - 上面有一个窗口,一个按钮,在表单构造函数中我创建了一个计时器:
m_Timer = new System.Threading.Timer(DoTickTimer, this,1000,1000);
private void DoTickTimer(object _state)
{
btn.Text = "oops";//обновляю интерфейсный элемент
}
很明显btn.Text = "oops"需要让它在主线程中运行,怎么做呢?
谢谢大家,就像经常发生的那样,问了一个问题之后,答案就更容易找到了:) 我解决了如下问题
PS:后来我意识到这个设计中的定时器是多余的,当我等待从未设置的信号时,电路工作得很好。WaitOne(2000) 事件;一定时间。为此,您需要设置所需的响应间隔,而不是 2000。同时,DoTickTimer 函数自然也不需要。
UWP,在 UI 线程上运行一个函数可以这样完成: