在 WP7 Mango 中实现互斥和监视器
互斥体和监视器实现之间有什么区别。任何人都可以帮助我学习 wp7 的这两个内容(wp7 的可实现代码)。请尝试添加一些代码片段,帮助我以简单的方式理解这些技术。 提前感谢 斯特兹马
what is the difference between mutex and monitor implementation. Can any one please help me to learn both of these for wp7(implementable code for wp7). Please try to add some code snippets that help me to understand the techniques in a simple way.
Thanx in advance
Stezma
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
互斥锁可以跨多个进程进行锁定。如果您正在运行需要独占访问资源的计划任务,这在 Windows Phone 中会很有用。为了跨进程锁定互斥锁,必须为互斥锁指定一个名称。
监视器只能在进程内锁定。
互斥示例:
电话应用程序任务:
计划任务类:
在上面的示例中,我们一次只允许一个应用程序访问本地数据库资源。这就是我们使用互斥锁的原因。
监视器示例(使用锁定语法):
电话应用程序任务:
计划任务类:
在本示例中,我们可以阻止多个应用程序线程进入 SaveRow,并且可以阻止多个 ScheduledTask 线程进入 DoStuff 方法。我们不能用监视器做的是确保只有一个线程同时访问本地数据库。
这基本上就是区别。监视器也比互斥体快得多。
A mutex can lock across multiple processes. This would be useful in Windows Phone if you have a scheduled task running that needs exclusive access to a resource. In order to lock a mutex across processes the Mutex must be given a name.
A monitor can lock only within a process.
Mutex Example:
Phone App Task:
Scheduled Task class:
In the above example we're only allowing one app at a time access to the local database resource. This is why we'd use a Mutex.
Monitor Example (using lock syntax):
Phone App Task:
Scheduled Task class:
In this example we can stop more than one application thread entering SaveRow and we can stop more than one ScheduledTask thread from entering the DoStuff method. What we can't do with a Monitor is ensure that only one thread is accessing the local DB at once.
That's basically the difference. Monitor is much faster than a Mutex as well.