1

クラス(グローバル)でMutexを定義しました:

static Mutex fooMutex;

そして、ユーザーが3秒に1回以上画像をタップした場合の効果を確認できないように、何かをロックしたいと思います。

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;
            } 

そして、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 に答える