我正在制作一个发送数据真USB的程序。在我的程序中,我正在制作一个列表视图,以显示该程序当前正在做什么。 因为我正在使用USB我有一个间隔为50的计时器,当我想将文本发送到列表视图时会出现问题,因为我的文本每秒发送50次而不是1次。
任何人都知道如何解决这个问题? 改变我的程序所以当文本已经写入列表框时,程序可能不会再发送它不是我认为的选项,因为同样的动作可能发生超过1次。
您可以在此找到相关代码。
private void ClickMyRadioButton1()
{
if (radioOff1.Checked)
{
radioOff1.PerformClick();
ListViewItem lvi = new ListViewItem("All USB's are off");
listView1.Items.Add(lvi);
}
}
private void tmrUSB_Tick(object sender, EventArgs e)
{
//Everything in here is repeated constantly
USBObject.receiveViaUSB();
listView1.EnsureVisible(listView1.Items.Count - 1);
if ( tabPage1 == tabControl1.SelectedTab)
{
this.radioOff2.Checked = true;
if (radioOff1.Checked == true)
{
USBObject.fromHostToDeviceBuffer[1] = USB_OFF;
ClickMyRadioButton1(); //This is what I only want to send one time to my ListBox and not 50 times a second
}
}
我正在使用Visual C#2010。
由于
答案 0 :(得分:0)
试试这个,让我知道它是否适合你:
private void ClickMyRadioButton1()
{
if (radioOff1.Checked)
{
radioOff1.PerformClick();
ListViewItem lvi = new ListViewItem("All USB's are off");
listView1.Items.Add(lvi);
}
}
int counter = 0;
private void tmrUSB_Tick(object sender, EventArgs e)
{
if (counter != 50)
{
counter++;
return;
}
else
{
counter = 0;
}
//Everything in here is repeated constantly
USBObject.receiveViaUSB();
listView1.EnsureVisible(listView1.Items.Count - 1);
if ( tabPage1 == tabControl1.SelectedTab)
{
this.radioOff2.Checked = true;
if (radioOff1.Checked == true)
{
USBObject.fromHostToDeviceBuffer[1] = USB_OFF;
ClickMyRadioButton1(); //This is what I only want to send one tine to my ListBox
}
}