社区
C#
帖子详情
Monitor问题
xiaohu9711
2009-12-29 09:21:28
为什么我在线程中使用Monitor。exit()时出错。假设f为主线程中定义的类型。
Monitor.Enter(f);
this.f++;
Monitor.Exit(f);
...全文
159
5
打赏
收藏
Monitor问题
为什么我在线程中使用Monitor。exit()时出错。假设f为主线程中定义的类型。 Monitor.Enter(f); this.f++; Monitor.Exit(f);
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Jiacker
2009-12-29
打赏
举报
回复
看样子f是值类型的,请看MSDN关于Monitor的备注:
使用 Enter 获取作为参数传递的对象上的 Monitor。如果其他线程已对该对象执行了 Enter,但尚未执行对应的 Exit,则当前线程将阻止,直到对方线程释放该对象。同一线程在不阻止的情况下多次调用 Enter 是合法的;但在该对象上等待的其他线程取消阻止之前必须调用相同数目的 Exit。
使用 Monitor 锁定对象(即引用类型)而不是值类型。将值类型变量传递给 Enter 时,它被装箱为对象。如果再次将相同的变量传递给 Enter,则它被装箱为一个单独对象,而且线程不会阻止。Monitor 本应保护的代码未受保护。此外,将变量传递给 Exit 时,也创建了另一个单独对象。因为传递给 Exit 的对象和传递给 Enter 的对象不同,Monitor 将引发 SynchronizationLockException。有关详细信息,请参见概念主题 监视器
。
Interrupt 可以中断正等待进入对象的 Monitor 的线程。将引发 ThreadInterruptedException。
使用 C# try…finally 块(在 Visual Basic 中为 Try…Finally)来确保释放监视器,或使用以 try…finally 块包装 Exit 方法的 C# lock 语句(在 Visual Basic 中为 SyncLock)。
xiaohu9711
2009-12-29
打赏
举报
回复
错误:从不同步的代码块中调用了对象同步方法。
如果不用monitor那我用什么来确保共享变量的互斥呢?
xiaohu9711
2009-12-29
打赏
举报
回复
不是完整版?那怎么可以使用enter呢?
bright3345
2009-12-29
打赏
举报
回复
是不是该你使用的软件不是完整版,没有包括这个函数,或者是程序定义的问题,有重复构造?
xiaohu9711
2009-12-29
打赏
举报
回复
:(
dubbo 的
monitor
监视器安装
问题
——————
monitor
一直处于正在启动状态
一台服务器安装完zookeeper并启动后,然后在另一服务器安装
monitor
dubbo-
monitor
-simple-2.8.3 解压安装 修改配置文件 dubbo.container=log4j,spring,registry,jettydubbo.application.name=simple-
monitor
dubbo.application.owner=#dub...
关于Android Device
Monitor
遇到的有关
问题
关于Android Device
Monitor
有关
问题
如何使用Android Device
Monitor
工具打开Android Device
Monitor
设备 Offline, File Explorer 空空如也文件导入文件导出 如何使用Android Device
Monitor
工具 我使用Android studio 3.6版本工具开发Android,在需要使用Android Device
Monitor
工具时,我却没有找到Android Device
Monitor
,去官网搜索才知道,谷歌把A
android SDK里面的
monitor
.bat打开闪退的
问题
如果打开
monitor
.bat闪退就需要在dos命令行里面运行
monitor
.bat,此时如果还提示报错,查看java jdk是否正确安装。
TECMINT_
MONITOR
项目常见
问题
解决方案
TECMINT_
MONITOR
项目常见
问题
解决方案 项目基础介绍 TECMINT_
MONITOR
是一个用于监控 Linux 系统网络、磁盘使用情况、系统运行时间、负载平均值和内存使用情况的 Shell 脚本项目。该项目最初发布在 Tecmint 网站上,后来被上传到 GitHub 并允许进一步开发。该项目的主要编程语言是 Shell。 新手使用注意事项及解决方案 1. 权限
问题
问题
描述:新手...
CDH的
monitor
内存
问题
由于CDH的简单,所以经常会在本地搭建测试环境,但是也正是由于本地测试环境的内存等硬件限制,导致跑起来的CDH东倒西歪。最近就遇到了,安装CDH单机版本之后,显示没有监控数据图像,然后报
monitor
错误,擦,如何搞。其实这个是由于分配给各种
monitor
的内存不足导致的,至于为啥分配不足,可能是系统自动按照当前硬件的内存资源自动分配的。看看如何修改。点击 群集 > cloudera managem
C#
111,129
社区成员
642,535
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章