J'ai une situation où l'utilisateur demande de faire un long processus en cours. Je prévois de le démarrer sur un autre thread dans le code-behind et de renvoyer le message à l'utilisateur "processing". Ensuite, toutes les deux ou trois secondes, je vais interroger (via un appel asynchrone) le fil de son statut. Lorsque le thread est terminé, je veux montrer le message de succès.ASP.NET vérifie l'état des threads sur un thread en cours d'exécution?
Question, comment interroger un thread une fois la requête d'origine terminée? Pour autant que je sache, l'objet Page va supprimer un fil distinct. Lorsque la requête est terminée, l'objet Page n'est plus là ... mais qu'en est-il de ce thread? Comment puis-je obtenir le statut de ce thread que j'ai créé?
Ainsi, je crée une classe singleton qui stocke (demande ID, statut) sur la demande originale. alors le thread va mettre à jour le statut en utilisant cette classe singleton. puis, sur toute demande ultérieure, je peux vérifier le statut via cette classe singleton. Est-ce exact? –
Le singleton stockerait une collection de "demande actuelle, statut" oui. Mais vous feriez peut-être mieux d'aller chercher un objet de session, d'y penser. Tout ce que cela fait est de traiter le conteneur de session dans le cadre comme le singleton - c'est exactement le même principe. Vous serez en mesure de voir ce qui se passe plus clairement en utilisant votre propre conteneur. –
en ce qui concerne le nettoyage, je peux supprimer la paire "demande actuelle, statut" de la session lorsque l'utilisateur demande l'état et lorsque l'état est "terminé". Cependant, je vais toujours avoir besoin d'un moyen de gérer la situation où l'utilisateur ne demande pas de statut (quitte ou ferme la page). Y a-t-il une façon standard de faire cela pour nettoyer? –