我有這個每分鐘都在運行的事件。
void checkForTime_Elapsed(object sender, ElapsedEventArgs e)
{
if (DateTime.Now.Hour == 10 && DateTime.Now.Minute == 35)
{
tik_tak();
}
}
在特定時間,在我的情況下 10:35 我想在標簽中顯示倒數計時器(我已經有了)
private void tik_tak()
{
EndOfTime = DateTime.Now.AddMinutes(10);
System.Windows.Forms.Timer t = new System.Windows.Forms.Timer() { Interval = 500, Enabled = true };
t.Tick = new EventHandler(t_Tick);
t_Tick(null, null);
}
void t_Tick(object sender, EventArgs e)
{
TimeSpan ts = EndOfTime.Subtract(DateTime.Now);
label1.Text = ts.ToString();
}
現在我收到“跨執行緒操作無效:控制從創建它的執行緒以外的執行緒訪問的‘label1’”
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
您不能從另一個執行緒修改您的 GUI 元素。為此,您需要指示您的調度員label1.Text = ts.ToString();在其執行緒上執行這行代碼。
它是通過這種方式完成的
label1.BeginInvoke((MethodInvoker)delegate ()
{
label1.Text = ts.ToString();
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/365585.html
