Je suis conscient que vous pouvez verrouiller un objet en c # à l'aide de verrou, mais pouvez-vous abandonner le verrou et attendre que quelque chose d'autre vous informe qu'il a changé comme vous pouvez le faire dans Java avec wait and notify?
Il me semble que synchronisé et verrouillé Java et c # respectivement sont synonymes.
La fonctionnalité équivalente (y compris le verrouillage normal) se trouve dans la classe Monitor .
foo.notify() => Monitor.Pulse(foo)
foo.notifyAll() => Monitor.PulseAll(foo)
foo.wait() => Monitor.Wait(foo)
L'instruction lock
en C # équivaut à appeler Monitor.Enter
et Monitor.Exit
avec un bloc try/finally approprié.
Voir mon tutoriel de threading ou celui de Joe Albahari pour plus de détails.
Je pense que les poignées d'attente peuvent fonctionner pour vous. Voyez si this aide.