如何使用Mutex创建锁?

时间:2013-01-13 11:17:52

标签: c# windows-phone-7

我在班级(全局)中定义了一个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()

但这不起作用,任何人都有了想法?

1 个答案:

答案 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
    ...
}