J'ai porté la file d'attente non bloquante psuedocode here en C#. Le code ci-dessous est destiné à être une copie quasi textuelle du document.Test d'une file d'attente non bloquante
Quelle approche adopteriez-vous pour tester la mise en œuvre?
Remarque: Je cours sous VS2010 donc je n'ai pas encore de support CHESS.
Edit:
J'ai supprimé le code en question pour un certain développeur sans méfiance ne l'utilise pas - il a fallu quelques changements pour l'obtenir bug ... et je n'étais toujours pas 100 % confiant que c'était sans bug. Avec le test de force brute, je ne pouvais pas obtenir une meilleure performance qu'une solution basée sur un verrou.
En outre, comme je cible 3,5, je pensais que j'étais SOL avec la file d'attente simultanée 4.0. Le framework 3.5 RX inclut un ConcurrentQueue donc c'était juste un petit exercice de programmation amusant et rien de plus.
la question était de savoir comment tester leur implémentation. – Andrey
Oui, mais si le port est évitable, et vous pouvez obtenir une mise en œuvre testée, gratuitement, il va éviter la raison de la question entièrement ... –
Malheureusement, je cible .NET 3.5. J'ai effectivement jeté un coup d'oeil à leur implémentation de .NET 4.0 dans le réflecteur et la file d'attente en question adopte une approche complètement différente; C'est l'algorithme recommandé par Joe Duffy dans son article Parallel Data Structures ... – jsw