j'ai une classe qui expose deux méthodes:C# Synchronisez WAIT/méthodes du sondage
-GetObject
Obtient un seul objet ou renvoie null s'il n'y en a pas.
- WaitForObject
Obtient un seul objet, ou attend jusqu'à ce que leur est un.
Un exemple d'implémentation:
class MyClass
{
MyStack stack;
public object GetObject()
{
return stack.Pop();
}
public object WaitForObject()
{
object returnValue;
while (returnValue == null)
returnValue = stack.Pop()
return returnValue
}
}
En supposant que MyStack
est thread-safe, comment puis-je faire en toute sécurité fil MyClass
? C'est à dire.
-GetObject
ne devrait jamais bloquer - Thread
faire WaitForObject
devrait obtenir de nouveaux objets ajoutés à la pile au lieu de GetObject
.
Pour les points bonus, comment les utilisateurs qui ajoutent des objets à la pile peuvent-ils informer les auditeurs qu'un nouvel objet est disponible? (suppression de la nécessité d'interrogation)
S'il vous plaît formater votre code;) –
@ Martin - Désolé, je l'ai écrit sur mon téléphone. – Justin
Si vous êtes sur .NET 4, vous pouvez simplement utiliser 'BlockingCollection