1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
private Mutex _mutex;
///Cette methode doit attendre la callback pour retourner
public void Close()
{
lobjet.JobDone+= new EventHandler(OnJobDone); //La callback a attendre
new Thread(delegate()
{
_mutex.WaitOne(0); //Je vérouille le mutex pour bloquer ma methode Close plus bas
}).Start();
lobjet.BeginJob();
_mutex.WaitOne(new TimeSpan(0,0,2)); // La j'attend la callback, je sais que BeginJob durera 1 seconde environ
}
private void OnJobDone(object sender,EventArg e)
{
_mutex.ReleaseMutex();
_mutex.Close();
} |
Partager