C# 避免对服务器中的代码段进行并发访问
我希望避免服务器端业务逻辑中的一段代码可以并发访问。C# 避免对服务器中的代码段进行并发访问,c#,multithreading,wcf,parallel-processing,C#,Multithreading,Wcf,Parallel Processing,我希望避免服务器端业务逻辑中的一段代码可以并发访问。 我的商务课不是静态的。服务层是在wcf中实现的。有什么建议吗?您需要使用某种同步机制。最简单的说法是: class BusinessLogic { // To avoid the possibility of a deadlock, prevent external code from // ever acquiring this lock by making the lock target private. priv
我的商务课不是静态的。服务层是在wcf中实现的。有什么建议吗?您需要使用某种同步机制。最简单的说法是:
class BusinessLogic
{
// To avoid the possibility of a deadlock, prevent external code from
// ever acquiring this lock by making the lock target private.
private readonly object lockTarget = new object();
void Foo()
{
lock(lockTarget)
{
// your code here
}
}
}
当然,线程同步通常是一个复杂的主题,只有在考虑了特定的上下文之后才能找到正确或最佳的解决方案。名称空间中还有其他同步原语,您也应该知道。问题需要进行一些编辑,以清楚地提到您要限制并发访问的业务逻辑在哪里,它是wcf端的一部分吗 另外,到目前为止,您已经为wcf配置了哪种并发模式 我假设您想要控制访问的代码是wcf端的一部分,根据这个假设,因为您的类不是静态的,所以限制并发访问的唯一方法是通过.net中提供的各种锁定机制 检查C#中的锁定,看看哪一个最适合您的锁定需要(您需要多大的线程安全性) 也可以查看此讨论,它将为您提供一些基本需要的指导:
您没有提供足够的信息,我们只能给出模糊的建议。