如何在c#中使一个方法一次只能被一个用户访问
本文关键字:一个 一次 访问 用户 方法 | 更新日期: 2023-09-27 18:03:10
我有一个方法,我想一次只有一个用户可以访问。我真不知道该怎么做。
public static int add(int a, int b)
{
int c = a+b;
return c;
}
和我调用这个方法时,用户输入数据到两个文本框,并单击提交按钮在asp.net网页上。我不希望其他用户的访问被拒绝。它们应该保持在某种队列中,当方法完成为一个用户提供服务时,应该为下一个用户提供服务。
Msdn得到了很好的解释,检查文档。线程同步
由于您有一个静态方法,因此需要静态Object
来进行锁定。
public class Calculator
{
private static System.Object lockThis = new System.Object();
public static void Add(int a, int b)
{
lock (lockThis)
{
return a+b;
}
}
}
这个lock
意味着,每当一个线程访问该方法并且它没有被锁定时,它将锁定它并运行代码。如果它被锁定,它将不做任何事情,直到它被解锁。
编辑:为您的方法编辑代码。
您将需要一个静态对象,并使用关键字lock。
private static object locker = new object();
public static int add(int a, int b)
{
lock(locker)
{
//do stuff
}
}
假设这个方法在一个单例对象中,那么你需要同步这个方法