J'utilise un Mutex pour m'assurer qu'un webservice fonctionne seulement une fois à la fois, mais je ne peux pas l'obtenir à 100% avec WaitOnce et ReleaseMutex..NET: Utilisation de Mutex pour m'assurer qu'un webservice n'est appelé qu'une seule fois
J'ai ceci:
private static Mutex mutex = new Mutex();
[WebMethod]
public bool TriggerAll()
{
bool ranJobs = false;
try
{
if (mutex.WaitOne(0, false))
{
Thread.Sleep(10000); // simulate a long operation
ranJobs = true;
}
}
finally
{
mutex.ReleaseMutex();
}
return ranJobs;
}
I'f J'essaie d'accéder au webservice deux fois de suite, le second appel ne retourne pas faux, mais je reçois un ApplicationException de mutex.ReleaseMutex ("méthode objectsyncronization a été appelé à partir d'un codeblock suryncronisé "- à peu près traduit de suédois)
Quelle est la meilleure façon de le faire?