У меня есть методы на стороне сервера, которые используют общие данные, и мне нужно синхронизировать доступ к данным между различными запросами.Например,
BrowserClient1_Calling_Method1()
{
//This should be an XHR call and it waits for the result.
}
BrowserClient2_Calling_Method2()
{
//This should be an XHR call and it waits for the result.
}
И на стороне сервера у меня есть два метода, которые нужно вызывать один за другим.
//When ever this method is called, put it in some sort of queue so that
//Method1 and Method2 gets executed one by one.
Server_Method1()
{
//Access the SHARED data
}
//When ever this method is called, put it in some sort of queue so that
//Method1 and Method2 gets executed one by one.
Server_Method2()
{
//Access the SHARED data
}
Итак, мой вопрос: как мне использовать некоторое программное обеспечение ConcurrentQueue
и выполнять методы сервера один за другим и make client unaware of such the queue.
С точки зрения клиента это должно быть как у любого другого XHRзапрос .
Я пытался использовать BlockingCollection
в c #, но не уверен, какой шаблон следует использовать.
Обратите внимание, что я мог использовать «блокировку» внутри методов Сервера, но я хотел обойтись без использования locks
.