如何确保当时只有一个用户可以执行一段代码

Inf*_*ner 2 .net c# asp.net concurrency wcf

我被要求提出一个约束,即用户不应该同时执行从ASP.Net/C#Web应用程序调用C++非托管代码的部分代码.

我想问一下,在调用PInvoke/C++代码的C#类库中的C#代码周围放置锁(someobject)是否足以确保只有一个用户能够执行代码?还是有其他技术?

我可能必须将此代码作为WCF服务托管.这种方法会起作用吗?

ole*_*sii 5

如果使用WCF,则可以采用ConcurrencyMode.Single,它将自动确保在一个上下文实例中的任何给定时刻只有一个线程正在执行操作.

否则,您需要使用手动线程同步(如锁,互斥等).