Salut,
j'ai un thread qui fait la tache suivante (pour simplifier):
la methode get_next_handler me renvoie un delegate sur successivement les methodes suivantes:
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 private void work() { while (true) { if (NewMessage) OnMessageReceived(); } } protected virtual void OnMessageReceived() { EventHandler handler = get_next_handler(); handler(this, EventArgs.Empty); }
mais voila, les deux handlers prennent du temps à s'exécuter, et bloquent la méthode OnMessageReceived... comment rendre cette méthode non-bloquante avec les contraintes suivantes:
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public void Handler1(object sender, EventArgs e) { Thread.Sleep(1000); } public void Handler2(object sender, EventArgs e) { Thread.Sleep(2000); }
Handler2 ne doit jamais s'exécuter pendant que Handler1 s'éxecute, et la solution ne doit pas modifier l'implémentation de Handler1 ni Handler2...
c'est possible de faire ça? je ne vois pas
merci d'avance
Partager