我在我的类中定义了一个 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;
}
并在 Completed 上处理:
private void fooFadeIn_Completed(...)
{
fooMutex.Dispose()
但这行不通,有人知道吗?
请您参考如下方法:
无需使用互斥锁或计时器,您可以只存储上次点击图像的时间:
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
...
}
