I have got a method that i want only one user can access at a time. I really don't know how to do this.
public static int add(int a, int b)
{
int c = a+b;
return c;
}
and i am calling this method when a user enters data into two text boxes and click the submit button on a asp.net webpage. I don't want other users access to be denied. They should be kept in some sort of queue and when method is finished serving one user next user should be served.
Msdn got good explanation, check documentation. Thread Synchronization
Since you have a static method, you need static Object
for locking.
public class Calculator
{
private static System.Object lockThis = new System.Object();
public static void Add(int a, int b)
{
lock (lockThis)
{
return a+b;
}
}
}
That lock
means, that whenever a Thread accesses that method and it is not locked, it will lock it and run the code. If it is locked it will do nothing until it is unlocked.
Edit: Edited code for your method.