我正在使用以下函数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