同步功能
我如何在 C# 中做到我的函数将受到互斥信号量(JAVA 中的同步函数)的保护
how can i do in C# that my function will be guarded by mutex semaphore a.k.a synchronize function in JAVA
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
除了自己做之外,没有什么好的方法可以做到这一点:
There's no good way to do this, except to do it yourself:
您不需要像 Java 这样的同步函数 - 它们是一个坏主意,因为它们使用其他可能干扰的锁结构。你想要的是一个锁对象。基本上,在您想要保护的类中,创建一个对象类型的私有成员变量,
然后在您需要同步的任何方法中,使用锁构造自动进入和离开锁:-
You don't want synchronize functions like Java - they're a bad idea because they use a lock construct which other can interfere with. What you want is a lock object. Basically, in the class you want to protect, create a private member variable of type object
Then in any method you need to synchronize, use the lock construct to enter and leave the lock automatically:-
您可以使用 MethodImpl(MethodImplOptions.Synchronized)
You can use MethodImpl(MethodImplOptions.Synchronized)
正如John所说,你可以使用
lock()
,这与Monitor.Enter和Monitor.Exit是一样的。如果需要跨进程互斥体,请使用 Mutex 类。As John said, you can use
lock ()
, which is the same thing as Monitor.Enter and Monitor.Exit. If you need a cross-process mutex, use the Mutex class.