我使用 rawinput 来获取触摸事件,并且只想在触摸屏幕时执行一次操作。这是一个例子。
private volatile bool running = false;
private object runLock = new object();
private void OnTouchOnHandler(object sender, EventArgs e)
{
lock (runLock)
{
if (!running)
{
MessageBox.Show("1");
running = true;
}
}
}
当我第一次触摸屏幕三四次时,我会得到几个 MessageBox。这真的很奇怪。为什么 lock 和 volatile 变量一开始不起作用?