【发布时间】:2016-08-31 13:55:34
【问题描述】:
我在表单上有一个开始和停止按钮,用于启动和停止将数据发送到 pubnub 通道的重复 SQL 查询。当我启动表单并单击开始时,我看到了我对订阅客户的期望。但是,如果我单击停止然后重新开始,我现在会得到重复的数据。第三次给了我一式三份的数据,等等。是什么原因造成的?以下是启动和停止方法:
private void btnQuery1Start_Click(object sender, EventArgs e)
{
lblQuery1Status.Text = "Status: Running";
btnQuery1Start.Enabled = false;
txtQuery1Interval.Enabled = false;
btnQuery1Stop.Enabled = true;
query1Timer.Elapsed += new ElapsedEventHandler(doQuery1);
query1Timer.Interval = Convert.ToInt32(txtQuery1Interval.Text) * 1000;
query1Timer.Enabled = true;
}
private void btnQuery1Stop_Click(object sender, EventArgs e)
{
btnQuery1Start.Enabled = true;
btnQuery1Stop.Enabled = false;
txtQuery1Interval.Enabled = true;
query1Timer.Enabled = false;
lblQuery1Status.Text = "Status: Stopped";
}
如有必要,我可以发布doQuery1,但它使用OdbcConnection 和数据读取器来获取单个整数结果,然后使用Newtonsoft.Json 对其进行序列化并使用Pubnub.publish() 发送它。我希望这很明显,我只是在上面的 btnQuery1Start_Click() 方法中丢失了。
【问题讨论】: