J'ai quelques enregistrements, que je veux enregistrer à la base de données de manière asynchrone. Je les organise en lots, puis les envoie. Au fil du temps, les lots sont traités.. NET 3.5 C# n'offre pas ce dont j'ai besoin pour le verrouillage: Count async enregistre jusqu'à 0 à nouveau
En attendant, l'utilisateur peut travailler. Il y a certaines opérations critiques, que je veux verrouiller, alors que tout lot de sauvegarde est encore en cours d'exécution de manière asynchrone.
La sauvegarde est faite en utilisant un TableServiceContext et la méthode .BeginSave() - mais je pense que cela ne devrait pas être pertinent. Ce que je veux faire est quand une sauvegarde asynchrone est commencée, augmentez un nombre de verrous, et quand elle se termine, diminuez le nombre de verrous de sorte qu'il sera zéro dès que tous ont fini. Je veux verrouiller l'opération critique tant que le compte n'est pas nul. En outre, je souhaite qualifier l'objet métier lock-by, par exemple.
Je n'ai pas trouvé de méthode de verrouillage .NET 3.5 C#, qui satisfait à cette exigence. Un sémaphore ne contient pas de méthode à vérifier, si le compte est 0. Sinon, un sémaphore avec un nombre maximal illimité ferait l'affaire.