我在班级(全局)中定义了一个Mutex:
static Mutex fooMutex;
我想要锁定一些内容,这样用户就不会每3秒钟看到一次点击图像的效果:
private void Image_Tap_1(...)
{
bool isRunnng = true;
try
{
Mutex.OpenExisting("foo");
}
catch
{
isRunnng = false;
fooMutex = new Mutex(true, "foo");
}
if (!isRunnng)
{
fooFadeIn.Begin();
fooFadeIn.Completed += fooFadeIn_Completed;
}
处理完成时:
private void fooFadeIn_Completed(...)
{
fooMutex.Dispose()
但这不起作用,任何人都有了想法?
答案 0 :(得分:4)
您可以只存储上次点击图片的时间,而不是使用互斥锁或计时器:
private DateTime lastTap;
private void Image_Tap_1(...)
{
var now = DateTime.Now;
if ((now - lastTap).TotalSeconds < 3)
{
return;
}
lastTap = now;
// More than 3 seconds since last tap
...
}