我正在使用以下函數plot()
來繪製谷歌地圖上的數據。現在,當我從另一個按鈕點擊事件調用相同的功能時,它不會執行,而是進入else()
statement.my plot函數是如下:c#:調用方法
public void plot(double temp_lat, double temp_long, string temp_date, string temp_time, string temp_bty_value)
{
if (this.InvokeRequired)
{
// do something
}
else { this.Close(); }
}
我打電話從按鈕單擊事件這個功能如下:
private void button6_Click_1(object sender, EventArgs e) /// refresh button
{
this.Invoke((MethodInvoker)(() =>
{
plot(28.5231445, 77.40388525, "17/06/20", "17:00:50", "82");
}));
}
時,是什麼原因呢?我是新的援引methods.please幫助 編輯:https://stackoverflow.com/a/43797637/6412780我之所以使用調用,因爲我在不同線程的gmap上同時繪製5個標記。我爲synchronization
我正在使用調用method.BUT現在我想更新我的數據。我做了一個刷新按鈕,其中包含新的經緯度(手動通過此處)在地圖上繪製。在同一UI上,我直接調用了plot()
函數,但即使如此,我仍然無法執行if statement
。這就是我正在做的事情。
沒有理由在這裏調用。 –
您已在'button6_Click_1'中調用'Invoke',所以'plot'正在UI線程中調用,因此'InvokeRequired'將返回false。目前尚不清楚有什麼令人驚訝的。 –
這裏InvokeRequired並不意味着你的'plot'方法必須被調用或不需要,而是需要調用UI線程的調用 – Bond