//define variable clickCount to record the times of clicking Button
private static int clickCount;
private void Button_Clicked(object sender, EventArgs e)
{
if (clickCount < 1)
{
TimeSpan tt = new TimeSpan(0, 0, 0, 1, 0);
Device.StartTimer(tt, ClickHandle);
}
clickCount++;
}
bool ClickHandle()
{
if (clickCount > 1)
{
// Minus1(_sender);
DisplayAlert("Alert", "You have clicked more than one times during the timespan", "OK");
System.Diagnostics.Debug.WriteLine("----add your code here");
}
else
{
// Plus1(_sender);
DisplayAlert("Alert", "You have clicked the button one time during the timespan", "OK");
System.Diagnostics.Debug.WriteLine("----add your code here");
}
clickCount = 0;
return false;
}
2条答案
按热度按时间pinkon5k1#
我用SemaphoreSlim来做这个。因为它是线程安全的。SemaphoreSlim允许线程一次执行一个任务,如果这是你想要的。
你这样定义它
然后在
Button_CLick
事件中,您可以像这样使用它:首先,您要注意CurrentCount是否为0(请参阅文档),这意味着事件已经在路上了。然后调用等待中的信号量。当你完成你的任务,你释放它和按钮是准备下一次按下。
92vpleto2#
您可以使用
Timer
来实现这一点。我们可以添加一个变量(例如,
clickCount
)来记录我们在TimeSpan
期间点击的次数(例如1s
)。请参考以下代码: