J'essaie de lire une propriété statique d'une classe statique, qui est en cours de modification à partir d'un thread différent.Lecture d'une valeur manipulée dans un thread différent
Fondamentalement, j'ai cette classe statique:
public static class Progress{
public static int currentProgress{get; set;}
}
et ce fil manipulant le currentProgress:
private void Job(){
for(int i = 0; i<100; i++){
Progress.currentProgress = i;
Thread.Sleep(1000);
}
}
Bien que cela fonctionne, j'ai un HttpHandler d'accéder à ce cours (toutes les quelques secondes), comme ceci:
public void ProcessRequest(HttpContext context) {
context.Response.Write(Progress.currentProgress.toString());
context.Response.End();
}
Mais le currentProgress est réglé sur c'est initi alvalue ici, tandis que le workThread fonctionne, et seulement quand c'est fait, currentProgress est mis à jour. Je me rends compte qu'il s'agit probablement d'une question de synchronisation des threads - mais je n'arrive pas à trouver la manière la plus simple d'y parvenir. Aide s'il vous plaît;)
Cela devrait fonctionner. Il n'est pas nécessaire de synchroniser l'accès à un int (sauf si la nouvelle valeur de l'int est calculée à partir de son ancienne valeur). –
comment allez-vous accéder à httphandler, je suppose que javascript interroger l'URL avec ajax pour obtenir votre statut? ou juste le rafraîchir manuellement? – dnolan
oui, en utilisant jQuery ajax pour interroger;) – Dynde