Есть метод DoSomething в котором происходит асинхронный запрос к БД для работы с объектом имеющего уникальный ID, нужно чтобы пока обрабатывается объект новый асинхронный запрос не прошел.
public static void DoSomething( int ID )
{
/// Здесь асинхронный вызов некой хранимки с передачей ей ID,
}
public static void DoSomethingFinished( .. )
{
/// Здесь получаем результаты асинхронного запроса
}
т.е. нужно немного доработать , примерно так
private static Dictionary<int, bool> m_InProc;
public static void DoSomething( int ID )
{
if ( m_InProc.ContainKey( ID ) )
{
if ( m_InProc[ID] )
return;
}
m_InProc[ID] = true;
/// Здесь асинхронный вызов некой хранимки с передачей ей ID,
}
public static void DoSomethingFinished( .. )
{
/// Здесь получаем результаты асинхронного запроса
m_InProc[ID] = false;
}
Возможно для этих целей лучше использовать какие-то объекты синхронизации ( мутекс и т.п. ).