4
私はMonitor class example on the msdn websiteに基づいて次のコードを持っています。SynchronizationLockExceptionを回避するにはどうすればよいですか?
private void WebRefresh_Click(object sender, EventArgs e)
{
if (WebRefresh.Enabled)//Only call from button
{
if (System.Threading.Monitor.TryEnter(deployIsRunning))
{
refreshWebVersion();
System.Threading.Monitor.Exit(deployIsRunning);
}
}
else
{
MessageBox.Show("You cannot refresh during a deploy");
}
}
コードがMonitor.ExitにSynchronizationLockExceptionをスロー()エラーメッセージで呼び出し:「オブジェクトの同期方法は、コードの非同期ブロックから呼び出されました。」エラーの説明は私が所有していないミューテックスをリリースしようとしたが、TryEnter
が成功しない限りExit
が呼び出されるコードブロックに入ることができないということです。このエラーを取り除くにはどうしたらいいですか?