Je dois lancer plusieurs tâches longues en paralléle à partir de mon
site web, actuellement j'utilise le delegate mais il ne peu y avoir un
seul delegate simultané par site (?), l'avantage est que j'arrive a
dialoguer avec ( passage de parametres, demande de l'avancement du
traitement, detection de la fin du traitement, récupération des
paramétres retours).
Pensez vous qu'il est possible de faire la même chose avec des threads
?? et donc de lancer plusieurs threads en parallèle ?
que me conseillez vous ?
Ben moi je ne vois pas pourquoi tu utilise des delegate pour faire des taches en parallèle. seul les thread le permet pascal
"oizo" a écrit dans le message de news: %
Bonjour,
Je dois lancer plusieurs tâches longues en paralléle à partir de mon site web, actuellement j'utilise le delegate mais il ne peu y avoir un seul delegate simultané par site (?), l'avantage est que j'arrive a dialoguer avec ( passage de parametres, demande de l'avancement du traitement, detection de la fin du traitement, récupération des paramétres retours).
Pensez vous qu'il est possible de faire la même chose avec des threads ?? et donc de lancer plusieurs threads en parallèle ? que me conseillez vous ?
Merci
Ben moi je ne vois pas pourquoi tu utilise des delegate pour faire des
taches en parallèle.
seul les thread le permet
pascal
"oizo" <oizo@oizo> a écrit dans le message de news:
%23r9Vp45kGHA.4776@TK2MSFTNGP05.phx.gbl...
Bonjour,
Je dois lancer plusieurs tâches longues en paralléle à partir de mon site
web, actuellement j'utilise le delegate mais il ne peu y avoir un seul
delegate simultané par site (?), l'avantage est que j'arrive a dialoguer
avec ( passage de parametres, demande de l'avancement du traitement,
detection de la fin du traitement, récupération des paramétres retours).
Pensez vous qu'il est possible de faire la même chose avec des threads ??
et donc de lancer plusieurs threads en parallèle ?
que me conseillez vous ?
Ben moi je ne vois pas pourquoi tu utilise des delegate pour faire des taches en parallèle. seul les thread le permet pascal
"oizo" a écrit dans le message de news: %
Bonjour,
Je dois lancer plusieurs tâches longues en paralléle à partir de mon site web, actuellement j'utilise le delegate mais il ne peu y avoir un seul delegate simultané par site (?), l'avantage est que j'arrive a dialoguer avec ( passage de parametres, demande de l'avancement du traitement, detection de la fin du traitement, récupération des paramétres retours).
Pensez vous qu'il est possible de faire la même chose avec des threads ?? et donc de lancer plusieurs threads en parallèle ? que me conseillez vous ?
Merci
Patrick Philippot
Bonjour,
Les notions de thread et de delegate ne sont pas liées. Un delegate est simplement le nom .Net pour ce qu'on appelle habituellement un smart pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de fonction. Il permet d'appeler, de manière sécurisée, une méthode au travers d'une variable contenant son adresse. C'est pour cela qu'il est utilisé pour gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un même exécutable plusieurs tâches s'exécutant de manière concurrente, plusieurs fils d'exécution en parallèle (réellement en parallèle uniquement s'il y a plusieurs processeurs dans la machine).
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
"oizo" wrote in message news:%
Bonjour,
Je dois lancer plusieurs tâches longues en paralléle à partir de mon site web, actuellement j'utilise le delegate mais il ne peu y avoir un seul delegate simultané par site (?), l'avantage est que j'arrive a dialoguer avec ( passage de parametres, demande de l'avancement du traitement, detection de la fin du traitement, récupération des paramétres retours).
Pensez vous qu'il est possible de faire la même chose avec des threads ?? et donc de lancer plusieurs threads en parallèle ? que me conseillez vous ?
Merci
Bonjour,
Les notions de thread et de delegate ne sont pas liées. Un delegate est
simplement le nom .Net pour ce qu'on appelle habituellement un smart
pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de
fonction. Il permet d'appeler, de manière sécurisée, une méthode au travers
d'une variable contenant son adresse. C'est pour cela qu'il est utilisé pour
gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un
même exécutable plusieurs tâches s'exécutant de manière concurrente,
plusieurs fils d'exécution en parallèle (réellement en parallèle uniquement
s'il y a plusieurs processeurs dans la machine).
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
"oizo" <oizo@oizo> wrote in message
news:%23r9Vp45kGHA.4776@TK2MSFTNGP05.phx.gbl...
Bonjour,
Je dois lancer plusieurs tâches longues en paralléle à partir de mon site
web, actuellement j'utilise le delegate mais il ne peu y avoir un seul
delegate simultané par site (?), l'avantage est que j'arrive a dialoguer
avec ( passage de parametres, demande de l'avancement du traitement,
detection de la fin du traitement, récupération des paramétres retours).
Pensez vous qu'il est possible de faire la même chose avec des threads ??
et donc de lancer plusieurs threads en parallèle ?
que me conseillez vous ?
Les notions de thread et de delegate ne sont pas liées. Un delegate est simplement le nom .Net pour ce qu'on appelle habituellement un smart pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de fonction. Il permet d'appeler, de manière sécurisée, une méthode au travers d'une variable contenant son adresse. C'est pour cela qu'il est utilisé pour gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un même exécutable plusieurs tâches s'exécutant de manière concurrente, plusieurs fils d'exécution en parallèle (réellement en parallèle uniquement s'il y a plusieurs processeurs dans la machine).
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
"oizo" wrote in message news:%
Bonjour,
Je dois lancer plusieurs tâches longues en paralléle à partir de mon site web, actuellement j'utilise le delegate mais il ne peu y avoir un seul delegate simultané par site (?), l'avantage est que j'arrive a dialoguer avec ( passage de parametres, demande de l'avancement du traitement, detection de la fin du traitement, récupération des paramétres retours).
Pensez vous qu'il est possible de faire la même chose avec des threads ?? et donc de lancer plusieurs threads en parallèle ? que me conseillez vous ?
Merci
Faure-vincent Pascal
voila bien dit lol "Patrick Philippot" a écrit dans le message de news:
Bonjour,
Les notions de thread et de delegate ne sont pas liées. Un delegate est simplement le nom .Net pour ce qu'on appelle habituellement un smart pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de fonction. Il permet d'appeler, de manière sécurisée, une méthode au travers d'une variable contenant son adresse. C'est pour cela qu'il est utilisé pour gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un même exécutable plusieurs tâches s'exécutant de manière concurrente, plusieurs fils d'exécution en parallèle (réellement en parallèle uniquement s'il y a plusieurs processeurs dans la machine).
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
"oizo" wrote in message news:%
Bonjour,
Je dois lancer plusieurs tâches longues en paralléle à partir de mon site web, actuellement j'utilise le delegate mais il ne peu y avoir un seul delegate simultané par site (?), l'avantage est que j'arrive a dialoguer avec ( passage de parametres, demande de l'avancement du traitement, detection de la fin du traitement, récupération des paramétres retours).
Pensez vous qu'il est possible de faire la même chose avec des threads ?? et donc de lancer plusieurs threads en parallèle ? que me conseillez vous ?
Merci
voila bien dit lol
"Patrick Philippot" <patrick.philippot@mainsoft.xx.fr> a écrit dans le
message de news: ue0SiL6kGHA.4444@TK2MSFTNGP02.phx.gbl...
Bonjour,
Les notions de thread et de delegate ne sont pas liées. Un delegate est
simplement le nom .Net pour ce qu'on appelle habituellement un smart
pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de
fonction. Il permet d'appeler, de manière sécurisée, une méthode au
travers d'une variable contenant son adresse. C'est pour cela qu'il est
utilisé pour gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un
même exécutable plusieurs tâches s'exécutant de manière concurrente,
plusieurs fils d'exécution en parallèle (réellement en parallèle
uniquement s'il y a plusieurs processeurs dans la machine).
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
"oizo" <oizo@oizo> wrote in message
news:%23r9Vp45kGHA.4776@TK2MSFTNGP05.phx.gbl...
Bonjour,
Je dois lancer plusieurs tâches longues en paralléle à partir de mon site
web, actuellement j'utilise le delegate mais il ne peu y avoir un seul
delegate simultané par site (?), l'avantage est que j'arrive a dialoguer
avec ( passage de parametres, demande de l'avancement du traitement,
detection de la fin du traitement, récupération des paramétres retours).
Pensez vous qu'il est possible de faire la même chose avec des threads ??
et donc de lancer plusieurs threads en parallèle ?
que me conseillez vous ?
voila bien dit lol "Patrick Philippot" a écrit dans le message de news:
Bonjour,
Les notions de thread et de delegate ne sont pas liées. Un delegate est simplement le nom .Net pour ce qu'on appelle habituellement un smart pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de fonction. Il permet d'appeler, de manière sécurisée, une méthode au travers d'une variable contenant son adresse. C'est pour cela qu'il est utilisé pour gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un même exécutable plusieurs tâches s'exécutant de manière concurrente, plusieurs fils d'exécution en parallèle (réellement en parallèle uniquement s'il y a plusieurs processeurs dans la machine).
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
"oizo" wrote in message news:%
Bonjour,
Je dois lancer plusieurs tâches longues en paralléle à partir de mon site web, actuellement j'utilise le delegate mais il ne peu y avoir un seul delegate simultané par site (?), l'avantage est que j'arrive a dialoguer avec ( passage de parametres, demande de l'avancement du traitement, detection de la fin du traitement, récupération des paramétres retours).
Pensez vous qu'il est possible de faire la même chose avec des threads ?? et donc de lancer plusieurs threads en parallèle ? que me conseillez vous ?
Merci
oizo
Patrick Philippot a écrit :
Bonjour,
Les notions de thread et de delegate ne sont pas liées. Un delegate est simplement le nom .Net pour ce qu'on appelle habituellement un smart pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de fonction. Il permet d'appeler, de manière sécurisée, une méthode au travers d'une variable contenant son adresse. C'est pour cela qu'il est utilisé pour gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un même exécutable plusieurs tâches s'exécutant de manière concurrente, plusieurs fils d'exécution en parallèle (réellement en parallèle uniquement s'il y a plusieurs processeurs dans la machine).
Si je comprend un peu, pour lancer des traitements "en paralléle" c'est le thread ok, mais alors comment dialoguer entre le thread principal et les autres threads ? ( via les delegates ? )
Patrick Philippot a écrit :
Bonjour,
Les notions de thread et de delegate ne sont pas liées. Un delegate est
simplement le nom .Net pour ce qu'on appelle habituellement un smart
pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de
fonction. Il permet d'appeler, de manière sécurisée, une méthode au travers
d'une variable contenant son adresse. C'est pour cela qu'il est utilisé pour
gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un
même exécutable plusieurs tâches s'exécutant de manière concurrente,
plusieurs fils d'exécution en parallèle (réellement en parallèle uniquement
s'il y a plusieurs processeurs dans la machine).
Si je comprend un peu, pour lancer des traitements "en paralléle" c'est
le thread ok,
mais alors comment dialoguer entre le thread principal et les autres
threads ? ( via les delegates ? )
Les notions de thread et de delegate ne sont pas liées. Un delegate est simplement le nom .Net pour ce qu'on appelle habituellement un smart pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de fonction. Il permet d'appeler, de manière sécurisée, une méthode au travers d'une variable contenant son adresse. C'est pour cela qu'il est utilisé pour gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un même exécutable plusieurs tâches s'exécutant de manière concurrente, plusieurs fils d'exécution en parallèle (réellement en parallèle uniquement s'il y a plusieurs processeurs dans la machine).
Si je comprend un peu, pour lancer des traitements "en paralléle" c'est le thread ok, mais alors comment dialoguer entre le thread principal et les autres threads ? ( via les delegates ? )
oizo
Patrick Philippot a écrit :
Bonjour,
Les notions de thread et de delegate ne sont pas liées. Un delegate est simplement le nom .Net pour ce qu'on appelle habituellement un smart pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de fonction. Il permet d'appeler, de manière sécurisée, une méthode au travers d'une variable contenant son adresse. C'est pour cela qu'il est utilisé pour gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un même exécutable plusieurs tâches s'exécutant de manière concurrente, plusieurs fils d'exécution en parallèle (réellement en parallèle uniquement s'il y a plusieurs processeurs dans la machine).
Dans beaucoup d'article sur je trouve que pour ne pas bloquer le site lors d'opération longue, il faut lancer une opération asynchrose sur le serveur (ex : http://www.c2i.fr/code.aspx?IDCodeT4)) et qu'il faut utiliser les délégates pour cela. ???
Patrick Philippot a écrit :
Bonjour,
Les notions de thread et de delegate ne sont pas liées. Un delegate est
simplement le nom .Net pour ce qu'on appelle habituellement un smart
pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de
fonction. Il permet d'appeler, de manière sécurisée, une méthode au travers
d'une variable contenant son adresse. C'est pour cela qu'il est utilisé pour
gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un
même exécutable plusieurs tâches s'exécutant de manière concurrente,
plusieurs fils d'exécution en parallèle (réellement en parallèle uniquement
s'il y a plusieurs processeurs dans la machine).
Dans beaucoup d'article sur je trouve que pour ne pas bloquer le site
lors d'opération longue, il faut lancer une opération asynchrose sur le
serveur (ex : http://www.c2i.fr/code.aspx?IDCodeT4)) et qu'il faut
utiliser les délégates pour cela.
???
Les notions de thread et de delegate ne sont pas liées. Un delegate est simplement le nom .Net pour ce qu'on appelle habituellement un smart pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de fonction. Il permet d'appeler, de manière sécurisée, une méthode au travers d'une variable contenant son adresse. C'est pour cela qu'il est utilisé pour gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un même exécutable plusieurs tâches s'exécutant de manière concurrente, plusieurs fils d'exécution en parallèle (réellement en parallèle uniquement s'il y a plusieurs processeurs dans la machine).
Dans beaucoup d'article sur je trouve que pour ne pas bloquer le site lors d'opération longue, il faut lancer une opération asynchrose sur le serveur (ex : http://www.c2i.fr/code.aspx?IDCodeT4)) et qu'il faut utiliser les délégates pour cela. ???
Faure-vincent Pascal
cad dialogué ?
"oizo" a écrit dans le message de news:
Patrick Philippot a écrit :
Bonjour,
Les notions de thread et de delegate ne sont pas liées. Un delegate est simplement le nom .Net pour ce qu'on appelle habituellement un smart pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de fonction. Il permet d'appeler, de manière sécurisée, une méthode au travers d'une variable contenant son adresse. C'est pour cela qu'il est utilisé pour gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un même exécutable plusieurs tâches s'exécutant de manière concurrente, plusieurs fils d'exécution en parallèle (réellement en parallèle uniquement s'il y a plusieurs processeurs dans la machine).
Si je comprend un peu, pour lancer des traitements "en paralléle" c'est le thread ok, mais alors comment dialoguer entre le thread principal et les autres threads ? ( via les delegates ? )
cad dialogué ?
"oizo" <oizo@oizo> a écrit dans le message de news:
OdrA0v6kGHA.4888@TK2MSFTNGP02.phx.gbl...
Patrick Philippot a écrit :
Bonjour,
Les notions de thread et de delegate ne sont pas liées. Un delegate est
simplement le nom .Net pour ce qu'on appelle habituellement un smart
pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de
fonction. Il permet d'appeler, de manière sécurisée, une méthode au
travers d'une variable contenant son adresse. C'est pour cela qu'il est
utilisé pour gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un
même exécutable plusieurs tâches s'exécutant de manière concurrente,
plusieurs fils d'exécution en parallèle (réellement en parallèle
uniquement s'il y a plusieurs processeurs dans la machine).
Si je comprend un peu, pour lancer des traitements "en paralléle" c'est le
thread ok,
mais alors comment dialoguer entre le thread principal et les autres
threads ? ( via les delegates ? )
Les notions de thread et de delegate ne sont pas liées. Un delegate est simplement le nom .Net pour ce qu'on appelle habituellement un smart pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de fonction. Il permet d'appeler, de manière sécurisée, une méthode au travers d'une variable contenant son adresse. C'est pour cela qu'il est utilisé pour gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un même exécutable plusieurs tâches s'exécutant de manière concurrente, plusieurs fils d'exécution en parallèle (réellement en parallèle uniquement s'il y a plusieurs processeurs dans la machine).
Si je comprend un peu, pour lancer des traitements "en paralléle" c'est le thread ok, mais alors comment dialoguer entre le thread principal et les autres threads ? ( via les delegates ? )
oizo
par exemple remonté dans l'ihm l'état du traitement, l'avancement... si il y a une erreur...
Faure-vincent Pascal a écrit :
cad dialogué ?
"oizo" a écrit dans le message de news:
Patrick Philippot a écrit :
Bonjour,
Les notions de thread et de delegate ne sont pas liées. Un delegate est simplement le nom .Net pour ce qu'on appelle habituellement un smart pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de fonction. Il permet d'appeler, de manière sécurisée, une méthode au travers d'une variable contenant son adresse. C'est pour cela qu'il est utilisé pour gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un même exécutable plusieurs tâches s'exécutant de manière concurrente, plusieurs fils d'exécution en parallèle (réellement en parallèle uniquement s'il y a plusieurs processeurs dans la machine).
Si je comprend un peu, pour lancer des traitements "en paralléle" c'est le thread ok, mais alors comment dialoguer entre le thread principal et les autres threads ? ( via les delegates ? )
par exemple remonté dans l'ihm l'état du traitement, l'avancement... si
il y a une erreur...
Faure-vincent Pascal a écrit :
cad dialogué ?
"oizo" <oizo@oizo> a écrit dans le message de news:
OdrA0v6kGHA.4888@TK2MSFTNGP02.phx.gbl...
Patrick Philippot a écrit :
Bonjour,
Les notions de thread et de delegate ne sont pas liées. Un delegate est
simplement le nom .Net pour ce qu'on appelle habituellement un smart
pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de
fonction. Il permet d'appeler, de manière sécurisée, une méthode au
travers d'une variable contenant son adresse. C'est pour cela qu'il est
utilisé pour gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un
même exécutable plusieurs tâches s'exécutant de manière concurrente,
plusieurs fils d'exécution en parallèle (réellement en parallèle
uniquement s'il y a plusieurs processeurs dans la machine).
Si je comprend un peu, pour lancer des traitements "en paralléle" c'est le
thread ok,
mais alors comment dialoguer entre le thread principal et les autres
threads ? ( via les delegates ? )
par exemple remonté dans l'ihm l'état du traitement, l'avancement... si il y a une erreur...
Faure-vincent Pascal a écrit :
cad dialogué ?
"oizo" a écrit dans le message de news:
Patrick Philippot a écrit :
Bonjour,
Les notions de thread et de delegate ne sont pas liées. Un delegate est simplement le nom .Net pour ce qu'on appelle habituellement un smart pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de fonction. Il permet d'appeler, de manière sécurisée, une méthode au travers d'une variable contenant son adresse. C'est pour cela qu'il est utilisé pour gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un même exécutable plusieurs tâches s'exécutant de manière concurrente, plusieurs fils d'exécution en parallèle (réellement en parallèle uniquement s'il y a plusieurs processeurs dans la machine).
Si je comprend un peu, pour lancer des traitements "en paralléle" c'est le thread ok, mais alors comment dialoguer entre le thread principal et les autres threads ? ( via les delegates ? )
Patrice
C'est un peu un abus de langage. Même si ils sont éventuellement utiles dans ce cadre, ce ne sont pas les delegates en tant que tels qui fournissent cette possibilité mais le fait de faire les appels de manière asynchrone. La notion importante est l'appel asynchrone, pas vraiment le delegate qui peut également être utilisée dans un contexte n'ayant rien à voir avec des appels asynchrones.
-- Patrice
"oizo" a écrit dans le message de news:
Patrick Philippot a écrit :
Bonjour,
Les notions de thread et de delegate ne sont pas liées. Un delegate est simplement le nom .Net pour ce qu'on appelle habituellement un smart pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de fonction. Il permet d'appeler, de manière sécurisée, une méthode au travers d'une variable contenant son adresse. C'est pour cela qu'il est utilisé pour gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un même exécutable plusieurs tâches s'exécutant de manière concurrente, plusieurs fils d'exécution en parallèle (réellement en parallèle uniquement s'il y a plusieurs processeurs dans la machine).
Dans beaucoup d'article sur je trouve que pour ne pas bloquer le site lors d'opération longue, il faut lancer une opération asynchrose sur le serveur (ex : http://www.c2i.fr/code.aspx?IDCodeT4)) et qu'il faut utiliser les délégates pour cela. ???
C'est un peu un abus de langage. Même si ils sont éventuellement utiles dans
ce cadre, ce ne sont pas les delegates en tant que tels qui fournissent
cette possibilité mais le fait de faire les appels de manière asynchrone. La
notion importante est l'appel asynchrone, pas vraiment le delegate qui peut
également être utilisée dans un contexte n'ayant rien à voir avec des appels
asynchrones.
--
Patrice
"oizo" <oizo@oizo> a écrit dans le message de news:
urfIS46kGHA.1244@TK2MSFTNGP05.phx.gbl...
Patrick Philippot a écrit :
Bonjour,
Les notions de thread et de delegate ne sont pas liées. Un delegate est
simplement le nom .Net pour ce qu'on appelle habituellement un smart
pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de
fonction. Il permet d'appeler, de manière sécurisée, une méthode au
travers d'une variable contenant son adresse. C'est pour cela qu'il est
utilisé pour gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un
même exécutable plusieurs tâches s'exécutant de manière concurrente,
plusieurs fils d'exécution en parallèle (réellement en parallèle
uniquement s'il y a plusieurs processeurs dans la machine).
Dans beaucoup d'article sur je trouve que pour ne pas bloquer le site lors
d'opération longue, il faut lancer une opération asynchrose sur le serveur
(ex : http://www.c2i.fr/code.aspx?IDCodeT4)) et qu'il faut utiliser les
délégates pour cela.
???
C'est un peu un abus de langage. Même si ils sont éventuellement utiles dans ce cadre, ce ne sont pas les delegates en tant que tels qui fournissent cette possibilité mais le fait de faire les appels de manière asynchrone. La notion importante est l'appel asynchrone, pas vraiment le delegate qui peut également être utilisée dans un contexte n'ayant rien à voir avec des appels asynchrones.
-- Patrice
"oizo" a écrit dans le message de news:
Patrick Philippot a écrit :
Bonjour,
Les notions de thread et de delegate ne sont pas liées. Un delegate est simplement le nom .Net pour ce qu'on appelle habituellement un smart pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de fonction. Il permet d'appeler, de manière sécurisée, une méthode au travers d'une variable contenant son adresse. C'est pour cela qu'il est utilisé pour gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un même exécutable plusieurs tâches s'exécutant de manière concurrente, plusieurs fils d'exécution en parallèle (réellement en parallèle uniquement s'il y a plusieurs processeurs dans la machine).
Dans beaucoup d'article sur je trouve que pour ne pas bloquer le site lors d'opération longue, il faut lancer une opération asynchrose sur le serveur (ex : http://www.c2i.fr/code.aspx?IDCodeT4)) et qu'il faut utiliser les délégates pour cela. ???
Patrick Philippot
> mais alors comment dialoguer entre le thread principal et les autres threads ? ( via les delegates ? )
Tous les threads d'un même processus accèdent aux mêmes ressources. Il n'y a donc aucun problème de dialogue, toutes les données du processus sont partagées par tous les threads. Le problème, a contrario, n'est pas de discuter entre threads mais de synchroniser l'accès aux ressources partagées au moyen des objets de synchro habituels (mutexes, events,...) afin d'éviter d'écrire dans un tableau, par exemple, alors qu'un autre thread est en train d'écrire dedans. C'est la partie la plus complexe de la programmation des threads. Créer et démarrer un thread, c'est trivial. Synchroniser proprement tous les threads d'un processus demande une bonne analyse et un zeste d'expérience. Et plus les threads sont nombreux, plus c'est compliqué.
Pour faire dialoguer des threads appartenant à des processus différents, on utilise les mécanismes d'IPC habituels. Rien de nouveau.
par exemple remonté dans l'ihm l'état du traitement , l'avancement... si il y a une erreur...
Vous parlez de remontées d'infos vers l'IHM: nous sommes dans un forum dédié à ASP .Net et donc aux applis Web. Je ne vois pas très bien où vous voulez en venir...
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
> mais alors comment dialoguer entre le thread principal et les autres
threads ? ( via les delegates ? )
Tous les threads d'un même processus accèdent aux mêmes ressources. Il n'y a
donc aucun problème de dialogue, toutes les données du processus sont
partagées par tous les threads. Le problème, a contrario, n'est pas de
discuter entre threads mais de synchroniser l'accès aux ressources partagées
au moyen des objets de synchro habituels (mutexes, events,...) afin d'éviter
d'écrire dans un tableau, par exemple, alors qu'un autre thread est en train
d'écrire dedans. C'est la partie la plus complexe de la programmation des
threads. Créer et démarrer un thread, c'est trivial. Synchroniser proprement
tous les threads d'un processus demande une bonne analyse et un zeste
d'expérience. Et plus les threads sont nombreux, plus c'est compliqué.
Pour faire dialoguer des threads appartenant à des processus différents, on
utilise les mécanismes d'IPC habituels. Rien de nouveau.
par exemple remonté dans l'ihm l'état du traitement
, l'avancement... si il y a une erreur...
Vous parlez de remontées d'infos vers l'IHM: nous sommes dans un forum dédié
à ASP .Net et donc aux applis Web. Je ne vois pas très bien où vous voulez
en venir...
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
> mais alors comment dialoguer entre le thread principal et les autres threads ? ( via les delegates ? )
Tous les threads d'un même processus accèdent aux mêmes ressources. Il n'y a donc aucun problème de dialogue, toutes les données du processus sont partagées par tous les threads. Le problème, a contrario, n'est pas de discuter entre threads mais de synchroniser l'accès aux ressources partagées au moyen des objets de synchro habituels (mutexes, events,...) afin d'éviter d'écrire dans un tableau, par exemple, alors qu'un autre thread est en train d'écrire dedans. C'est la partie la plus complexe de la programmation des threads. Créer et démarrer un thread, c'est trivial. Synchroniser proprement tous les threads d'un processus demande une bonne analyse et un zeste d'expérience. Et plus les threads sont nombreux, plus c'est compliqué.
Pour faire dialoguer des threads appartenant à des processus différents, on utilise les mécanismes d'IPC habituels. Rien de nouveau.
par exemple remonté dans l'ihm l'état du traitement , l'avancement... si il y a une erreur...
Vous parlez de remontées d'infos vers l'IHM: nous sommes dans un forum dédié à ASP .Net et donc aux applis Web. Je ne vois pas très bien où vous voulez en venir...
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Arnaud CLERET
Bonsoir,
Chacun des threads a accès à l'ensemble des ressources d'un même processus et la problmématique vient plus de la synchronisation des ressources comme l'a expliqué Patrick. Sinon on passera par Remoting ou WCF pour faire des échanges inter-process.
Pour connaitre l'état d'avancement des threads en cours de travail vous pouvez vous baser sur un mécanisme d'évènements lancer par les threads fils et capturés par le thread principal afin d'afficher les états au niveau de l'ihm.
-- arno - http://www.dotnetguru2.org/acleret/
"oizo" a écrit dans le message de news:
par exemple remonté dans l'ihm l'état du traitement, l'avancement... si il y a une erreur...
Faure-vincent Pascal a écrit :
cad dialogué ?
"oizo" a écrit dans le message de news:
Patrick Philippot a écrit :
Bonjour,
Les notions de thread et de delegate ne sont pas liées. Un delegate est simplement le nom .Net pour ce qu'on appelle habituellement un smart pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de fonction. Il permet d'appeler, de manière sécurisée, une méthode au travers d'une variable contenant son adresse. C'est pour cela qu'il est utilisé pour gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un même exécutable plusieurs tâches s'exécutant de manière concurrente, plusieurs fils d'exécution en parallèle (réellement en parallèle uniquement s'il y a plusieurs processeurs dans la machine).
Si je comprend un peu, pour lancer des traitements "en paralléle" c'est le thread ok, mais alors comment dialoguer entre le thread principal et les autres threads ? ( via les delegates ? )
Bonsoir,
Chacun des threads a accès à l'ensemble des ressources d'un même processus
et la problmématique vient plus de la synchronisation des ressources comme
l'a expliqué Patrick. Sinon on passera par Remoting ou WCF pour faire des
échanges inter-process.
Pour connaitre l'état d'avancement des threads en cours de travail vous
pouvez vous baser sur un mécanisme d'évènements lancer par les threads fils
et capturés par le thread principal afin d'afficher les états au niveau de
l'ihm.
--
arno - http://www.dotnetguru2.org/acleret/
"oizo" <oizo@oizo> a écrit dans le message de news:
uN3kD56kGHA.1244@TK2MSFTNGP05.phx.gbl...
par exemple remonté dans l'ihm l'état du traitement, l'avancement... si il
y a une erreur...
Faure-vincent Pascal a écrit :
cad dialogué ?
"oizo" <oizo@oizo> a écrit dans le message de news:
OdrA0v6kGHA.4888@TK2MSFTNGP02.phx.gbl...
Patrick Philippot a écrit :
Bonjour,
Les notions de thread et de delegate ne sont pas liées. Un delegate est
simplement le nom .Net pour ce qu'on appelle habituellement un smart
pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur
de fonction. Il permet d'appeler, de manière sécurisée, une méthode au
travers d'une variable contenant son adresse. C'est pour cela qu'il est
utilisé pour gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans
un même exécutable plusieurs tâches s'exécutant de manière concurrente,
plusieurs fils d'exécution en parallèle (réellement en parallèle
uniquement s'il y a plusieurs processeurs dans la machine).
Si je comprend un peu, pour lancer des traitements "en paralléle" c'est
le thread ok,
mais alors comment dialoguer entre le thread principal et les autres
threads ? ( via les delegates ? )
Chacun des threads a accès à l'ensemble des ressources d'un même processus et la problmématique vient plus de la synchronisation des ressources comme l'a expliqué Patrick. Sinon on passera par Remoting ou WCF pour faire des échanges inter-process.
Pour connaitre l'état d'avancement des threads en cours de travail vous pouvez vous baser sur un mécanisme d'évènements lancer par les threads fils et capturés par le thread principal afin d'afficher les états au niveau de l'ihm.
-- arno - http://www.dotnetguru2.org/acleret/
"oizo" a écrit dans le message de news:
par exemple remonté dans l'ihm l'état du traitement, l'avancement... si il y a une erreur...
Faure-vincent Pascal a écrit :
cad dialogué ?
"oizo" a écrit dans le message de news:
Patrick Philippot a écrit :
Bonjour,
Les notions de thread et de delegate ne sont pas liées. Un delegate est simplement le nom .Net pour ce qu'on appelle habituellement un smart pointer, un objet encapsulant ce que l'on appelle en C/C++ un pointeur de fonction. Il permet d'appeler, de manière sécurisée, une méthode au travers d'une variable contenant son adresse. C'est pour cela qu'il est utilisé pour gérer les événements en particulier.
Un thread est l'unité de dispatching du système et permet d'avoir dans un même exécutable plusieurs tâches s'exécutant de manière concurrente, plusieurs fils d'exécution en parallèle (réellement en parallèle uniquement s'il y a plusieurs processeurs dans la machine).
Si je comprend un peu, pour lancer des traitements "en paralléle" c'est le thread ok, mais alors comment dialoguer entre le thread principal et les autres threads ? ( via les delegates ? )