sách gpt4 ăn đã đi

c# - 如何避免 SynchronizationLockException?

In lại 作者:太空狗 更新时间:2023-10-30 00:35:25 26 4
mua khóa gpt4 giày nike

我有以下代码,它基于 Monitor class example on the msdn website .

    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);
}
}
khác
{
MessageBox.Show("You cannot refresh during a deploy");
}
}

代码抛出 SynchronizationLockException在带有错误消息的 Monitor.Exit() 调用上:“从未同步的代码块调用了对象同步方法。”错误的解释是我试图释放一个不属于我的互斥锁,但我无法进入调用Ra 的代码块,除非TryEnter 成功。如何消除此错误?

câu trả lời hay nhất

我的猜测是 deployIsRunning 是一个类型为 bool 或其他值类型的变量。您对 TryEnterRa 的调用将框住值,每次都创建一个新对象。

基本上,只对锁使用引用类型变量。

关于c# - 如何避免 SynchronizationLockException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4759678/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress