1

我在我的班级(全局)中定义了一个互斥锁:

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()

但这不起作用,有人知道吗?

4

1 回答 1

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
    ...
}
于 2013-01-13T11:51:24.197 回答