Dans une application que je crée, j'ai deux composants que je veux que l'utilisateur soit en mesure de faire une pause/reprendre. Je me demande quels modèles standards pourraient exister pour appuyer la mise en pause et la reprise, le cas échéant? Les deux composants font beaucoup d'E/S réseau. Il semble que, à un niveau élevé, je dois persister dans la file d'attente actuelle de chaque composant - mais persister c'est où je cherche ces modèles standard? Dois-je sérialiser le composant lui-même? Est-ce que je sérialise juste le travail? Quel format dois-je sérialiser (xml, base de données, etc ...)? Qu'est-ce que .NET a construit dans cela pourrait aider? Y a-t-il des bibliothèques pour vous aider? Y a-t-il des différences à prendre en compte si l'utilisateur s'arrête/reprend dans la même session d'application ou s'il fait une pause/reprend après l'ouverture, la fermeture et l'ouverture de l'application? Qu'en est-il de la persistance de cette information sur différents ordinateurs?C# - Comment implémenter une sémantique de pause/reprise?
Des suggestions d'expériences passées ou de modèles qui vous viennent à l'esprit? J'espère que cela se transforme en plus de discussion sur les différentes façons de faire cela et les avantages/inconvénients de chacun. Merci.
Est-ce que vous interrompez la communication entre les composants et que le "travail" continue à s'accumuler ou le travail est-il également suspendu? Il fait définitivement une différence si le travail suspendu doit survivre à la fin de l'application. Une file d'attente de messages vous permettra d'accumuler du travail (messages) sans risque de perdre l'appilcation est terminée, mais peut être une solution plus lourde que nécessaire. – ScottS
Scott - Non, le travail ne s'accumulera pas lorsque l'application est en pause. Pouvez-vous expliquer comment une file d'attente de messages survivra si l'application est terminée? Peut-être fournir plus de détails sur cette structure de file d'attente de messages dont vous parlez? Mes deux composants ont déjà des files d'attente de travail, mais ils ne survivraient pas si l'application était fermée. Merci. – Chad