Bonjour,
J'ai créé 2 applications qui communique en Net remoting.
Le serveur générent des événements qui remonte bien au client.
Je voudrais au travers de ces événements mettre à jour une barre de
progression.
Dans la méthode de l'événement, je fis appelle à un invoke mais j'ai un
figeage systématique de mon application au niveau de l'invoke.
J'ai fais plusieures recherches sur le net et ne j'arrive pas comprendre
pourquoi.
Si une personne pouvait m'expliquer ou j'ai fais une erreur ou la méthode à
employer.
Merci d'avance.
Voici une partie de mon code :
Dans ma classe
public delegate void pgbStepValueCallback(int pintValue);
public pgbStepValueCallback myDelegate;
Dans mon constructeur
myDelegate = new pgbStepValueCallback(pgbStepValueMethod);
Dans mon événement
private void OnServiceStatus(object sender, ServiceStatusEventArgs e)
{
frmRupture objFrmRupture = this;
objFrmRupture.Invoke(objFrmRupture.myDelegate, new object[] { e.Step });
Console.WriteLine(e.Step + " - " + e.State);
}
Ma fonction pour le Delegate
public void pgbStepValueMethod(int pintValue)
{
pgbStep.Value = pintValue;
}
Bonjour,
J'ai créé 2 applications qui communique en Net remoting.
Le serveur générent des événements qui remonte bien au client.
Je voudrais au travers de ces événements mettre à jour une barre de
progression.
Dans la méthode de l'événement, je fis appelle à un invoke mais j'ai un
figeage systématique de mon application au niveau de l'invoke.
J'ai fais plusieures recherches sur le net et ne j'arrive pas comprendre
pourquoi.
Si une personne pouvait m'expliquer ou j'ai fais une erreur ou la méthode à
employer.
Merci d'avance.
Voici une partie de mon code :
Dans ma classe
public delegate void pgbStepValueCallback(int pintValue);
public pgbStepValueCallback myDelegate;
Dans mon constructeur
myDelegate = new pgbStepValueCallback(pgbStepValueMethod);
Dans mon événement
private void OnServiceStatus(object sender, ServiceStatusEventArgs e)
{
frmRupture objFrmRupture = this;
objFrmRupture.Invoke(objFrmRupture.myDelegate, new object[] { e.Step });
Console.WriteLine(e.Step + " - " + e.State);
}
Ma fonction pour le Delegate
public void pgbStepValueMethod(int pintValue)
{
pgbStep.Value = pintValue;
}
Bonjour,
J'ai créé 2 applications qui communique en Net remoting.
Le serveur générent des événements qui remonte bien au client.
Je voudrais au travers de ces événements mettre à jour une barre de
progression.
Dans la méthode de l'événement, je fis appelle à un invoke mais j'ai un
figeage systématique de mon application au niveau de l'invoke.
J'ai fais plusieures recherches sur le net et ne j'arrive pas comprendre
pourquoi.
Si une personne pouvait m'expliquer ou j'ai fais une erreur ou la méthode à
employer.
Merci d'avance.
Voici une partie de mon code :
Dans ma classe
public delegate void pgbStepValueCallback(int pintValue);
public pgbStepValueCallback myDelegate;
Dans mon constructeur
myDelegate = new pgbStepValueCallback(pgbStepValueMethod);
Dans mon événement
private void OnServiceStatus(object sender, ServiceStatusEventArgs e)
{
frmRupture objFrmRupture = this;
objFrmRupture.Invoke(objFrmRupture.myDelegate, new object[] { e.Step });
Console.WriteLine(e.Step + " - " + e.State);
}
Ma fonction pour le Delegate
public void pgbStepValueMethod(int pintValue)
{
pgbStep.Value = pintValue;
}
Bonjour,
Merci pour ta réponse.
J'ai testé avec le BeginInvoke, je n'ai plus de figeage mais ma progressebar
ne bouge pas. J'ai voulu rajouter un EndInvoke mais la le figeage est revenu.
Les valeurs que je passent dans mon évènement sont inférieures au Maximum de
ma progressbar.
Quand tu me dis que le code est peu orthodoxe, peux-tu me dire ce qu'il
aurait été mieux de faire car j'ai utilisé plusieurs tutos pour le créer et
tous les conseils sont les bienvenue.
Romuald
"Lemming" a écrit :
> Bonjour,
>
> Le code paraît correct (bien que peu orthodoxe). Es tu certain que la
> valeur de Step est valide pour pgbStep?
> Quelques suggestions:
> - Tente un BeginInvoke, qui rendra la main immédiatement au thread remoting,
> plutôt qu'un Invoke
> - Vérifie (if (pintValue > pgbStep.Maximum) return;) la valeur de step, il
> arrive que les Exceptions cross-thread soient mal/pas rapportées par Visual
> Studio.
>
> Luc
>
> "Romuald SAURIN" a écrit :
>
> > Bonjour,
> >
> > J'ai créé 2 applications qui communique en Net remoting.
> > Le serveur générent des événements qui remonte bien au client.
> > Je voudrais au travers de ces événements mettre à jour une barre de
> > progression.
> >
> > Dans la méthode de l'événement, je fis appelle à un invoke mais j'ai un
> > figeage systématique de mon application au niveau de l'invoke.
> > J'ai fais plusieures recherches sur le net et ne j'arrive pas comprendre
> > pourquoi.
> >
> > Si une personne pouvait m'expliquer ou j'ai fais une erreur ou la méthode à
> > employer.
> >
> > Merci d'avance.
> >
> > Voici une partie de mon code :
> >
> > Dans ma classe
> > public delegate void pgbStepValueCallback(int pintValue);
> > public pgbStepValueCallback myDelegate;
> >
> > Dans mon constructeur
> > myDelegate = new pgbStepValueCallback(pgbStepValueMethod);
> >
> > Dans mon événement
> > private void OnServiceStatus(object sender, ServiceStatusEventArgs e)
> > {
> > frmRupture objFrmRupture = this;
> > objFrmRupture.Invoke(objFrmRupture.myDelegate, new object[] { e.Step });
> > Console.WriteLine(e.Step + " - " + e.State);
> > }
> >
> > Ma fonction pour le Delegate
> > public void pgbStepValueMethod(int pintValue)
> > {
> > pgbStep.Value = pintValue;
> > }
Bonjour,
Merci pour ta réponse.
J'ai testé avec le BeginInvoke, je n'ai plus de figeage mais ma progressebar
ne bouge pas. J'ai voulu rajouter un EndInvoke mais la le figeage est revenu.
Les valeurs que je passent dans mon évènement sont inférieures au Maximum de
ma progressbar.
Quand tu me dis que le code est peu orthodoxe, peux-tu me dire ce qu'il
aurait été mieux de faire car j'ai utilisé plusieurs tutos pour le créer et
tous les conseils sont les bienvenue.
Romuald
"Lemming" a écrit :
> Bonjour,
>
> Le code paraît correct (bien que peu orthodoxe). Es tu certain que la
> valeur de Step est valide pour pgbStep?
> Quelques suggestions:
> - Tente un BeginInvoke, qui rendra la main immédiatement au thread remoting,
> plutôt qu'un Invoke
> - Vérifie (if (pintValue > pgbStep.Maximum) return;) la valeur de step, il
> arrive que les Exceptions cross-thread soient mal/pas rapportées par Visual
> Studio.
>
> Luc
>
> "Romuald SAURIN" a écrit :
>
> > Bonjour,
> >
> > J'ai créé 2 applications qui communique en Net remoting.
> > Le serveur générent des événements qui remonte bien au client.
> > Je voudrais au travers de ces événements mettre à jour une barre de
> > progression.
> >
> > Dans la méthode de l'événement, je fis appelle à un invoke mais j'ai un
> > figeage systématique de mon application au niveau de l'invoke.
> > J'ai fais plusieures recherches sur le net et ne j'arrive pas comprendre
> > pourquoi.
> >
> > Si une personne pouvait m'expliquer ou j'ai fais une erreur ou la méthode à
> > employer.
> >
> > Merci d'avance.
> >
> > Voici une partie de mon code :
> >
> > Dans ma classe
> > public delegate void pgbStepValueCallback(int pintValue);
> > public pgbStepValueCallback myDelegate;
> >
> > Dans mon constructeur
> > myDelegate = new pgbStepValueCallback(pgbStepValueMethod);
> >
> > Dans mon événement
> > private void OnServiceStatus(object sender, ServiceStatusEventArgs e)
> > {
> > frmRupture objFrmRupture = this;
> > objFrmRupture.Invoke(objFrmRupture.myDelegate, new object[] { e.Step });
> > Console.WriteLine(e.Step + " - " + e.State);
> > }
> >
> > Ma fonction pour le Delegate
> > public void pgbStepValueMethod(int pintValue)
> > {
> > pgbStep.Value = pintValue;
> > }
Bonjour,
Merci pour ta réponse.
J'ai testé avec le BeginInvoke, je n'ai plus de figeage mais ma progressebar
ne bouge pas. J'ai voulu rajouter un EndInvoke mais la le figeage est revenu.
Les valeurs que je passent dans mon évènement sont inférieures au Maximum de
ma progressbar.
Quand tu me dis que le code est peu orthodoxe, peux-tu me dire ce qu'il
aurait été mieux de faire car j'ai utilisé plusieurs tutos pour le créer et
tous les conseils sont les bienvenue.
Romuald
"Lemming" a écrit :
> Bonjour,
>
> Le code paraît correct (bien que peu orthodoxe). Es tu certain que la
> valeur de Step est valide pour pgbStep?
> Quelques suggestions:
> - Tente un BeginInvoke, qui rendra la main immédiatement au thread remoting,
> plutôt qu'un Invoke
> - Vérifie (if (pintValue > pgbStep.Maximum) return;) la valeur de step, il
> arrive que les Exceptions cross-thread soient mal/pas rapportées par Visual
> Studio.
>
> Luc
>
> "Romuald SAURIN" a écrit :
>
> > Bonjour,
> >
> > J'ai créé 2 applications qui communique en Net remoting.
> > Le serveur générent des événements qui remonte bien au client.
> > Je voudrais au travers de ces événements mettre à jour une barre de
> > progression.
> >
> > Dans la méthode de l'événement, je fis appelle à un invoke mais j'ai un
> > figeage systématique de mon application au niveau de l'invoke.
> > J'ai fais plusieures recherches sur le net et ne j'arrive pas comprendre
> > pourquoi.
> >
> > Si une personne pouvait m'expliquer ou j'ai fais une erreur ou la méthode à
> > employer.
> >
> > Merci d'avance.
> >
> > Voici une partie de mon code :
> >
> > Dans ma classe
> > public delegate void pgbStepValueCallback(int pintValue);
> > public pgbStepValueCallback myDelegate;
> >
> > Dans mon constructeur
> > myDelegate = new pgbStepValueCallback(pgbStepValueMethod);
> >
> > Dans mon événement
> > private void OnServiceStatus(object sender, ServiceStatusEventArgs e)
> > {
> > frmRupture objFrmRupture = this;
> > objFrmRupture.Invoke(objFrmRupture.myDelegate, new object[] { e.Step });
> > Console.WriteLine(e.Step + " - " + e.State);
> > }
> >
> > Ma fonction pour le Delegate
> > public void pgbStepValueMethod(int pintValue)
> > {
> > pgbStep.Value = pintValue;
> > }
Bonjour,
Le code paraît correct (bien que peu orthodoxe). Es tu certain que la
valeur de Step est valide pour pgbStep?
Quelques suggestions:
- Tente un BeginInvoke, qui rendra la main immédiatement au thread remoting,
plutôt qu'un Invoke
- Vérifie (if (pintValue > pgbStep.Maximum) return;) la valeur de step, il
arrive que les Exceptions cross-thread soient mal/pas rapportées par Visual
Studio.
Luc
"Romuald SAURIN" a écrit :
> Bonjour,
>
> J'ai créé 2 applications qui communique en Net remoting.
> Le serveur générent des événements qui remonte bien au client.
> Je voudrais au travers de ces événements mettre à jour une barre de
> progression.
>
> Dans la méthode de l'événement, je fis appelle à un invoke mais j'ai un
> figeage systématique de mon application au niveau de l'invoke.
> J'ai fais plusieures recherches sur le net et ne j'arrive pas comprendre
> pourquoi.
>
> Si une personne pouvait m'expliquer ou j'ai fais une erreur ou la méthode à
> employer.
>
> Merci d'avance.
>
> Voici une partie de mon code :
>
> Dans ma classe
> public delegate void pgbStepValueCallback(int pintValue);
> public pgbStepValueCallback myDelegate;
>
> Dans mon constructeur
> myDelegate = new pgbStepValueCallback(pgbStepValueMethod);
>
> Dans mon événement
> private void OnServiceStatus(object sender, ServiceStatusEventArgs e)
> {
> frmRupture objFrmRupture = this;
> objFrmRupture.Invoke(objFrmRupture.myDelegate, new object[] { e.Step });
> Console.WriteLine(e.Step + " - " + e.State);
> }
>
> Ma fonction pour le Delegate
> public void pgbStepValueMethod(int pintValue)
> {
> pgbStep.Value = pintValue;
> }
Bonjour,
Le code paraît correct (bien que peu orthodoxe). Es tu certain que la
valeur de Step est valide pour pgbStep?
Quelques suggestions:
- Tente un BeginInvoke, qui rendra la main immédiatement au thread remoting,
plutôt qu'un Invoke
- Vérifie (if (pintValue > pgbStep.Maximum) return;) la valeur de step, il
arrive que les Exceptions cross-thread soient mal/pas rapportées par Visual
Studio.
Luc
"Romuald SAURIN" a écrit :
> Bonjour,
>
> J'ai créé 2 applications qui communique en Net remoting.
> Le serveur générent des événements qui remonte bien au client.
> Je voudrais au travers de ces événements mettre à jour une barre de
> progression.
>
> Dans la méthode de l'événement, je fis appelle à un invoke mais j'ai un
> figeage systématique de mon application au niveau de l'invoke.
> J'ai fais plusieures recherches sur le net et ne j'arrive pas comprendre
> pourquoi.
>
> Si une personne pouvait m'expliquer ou j'ai fais une erreur ou la méthode à
> employer.
>
> Merci d'avance.
>
> Voici une partie de mon code :
>
> Dans ma classe
> public delegate void pgbStepValueCallback(int pintValue);
> public pgbStepValueCallback myDelegate;
>
> Dans mon constructeur
> myDelegate = new pgbStepValueCallback(pgbStepValueMethod);
>
> Dans mon événement
> private void OnServiceStatus(object sender, ServiceStatusEventArgs e)
> {
> frmRupture objFrmRupture = this;
> objFrmRupture.Invoke(objFrmRupture.myDelegate, new object[] { e.Step });
> Console.WriteLine(e.Step + " - " + e.State);
> }
>
> Ma fonction pour le Delegate
> public void pgbStepValueMethod(int pintValue)
> {
> pgbStep.Value = pintValue;
> }
Bonjour,
Le code paraît correct (bien que peu orthodoxe). Es tu certain que la
valeur de Step est valide pour pgbStep?
Quelques suggestions:
- Tente un BeginInvoke, qui rendra la main immédiatement au thread remoting,
plutôt qu'un Invoke
- Vérifie (if (pintValue > pgbStep.Maximum) return;) la valeur de step, il
arrive que les Exceptions cross-thread soient mal/pas rapportées par Visual
Studio.
Luc
"Romuald SAURIN" a écrit :
> Bonjour,
>
> J'ai créé 2 applications qui communique en Net remoting.
> Le serveur générent des événements qui remonte bien au client.
> Je voudrais au travers de ces événements mettre à jour une barre de
> progression.
>
> Dans la méthode de l'événement, je fis appelle à un invoke mais j'ai un
> figeage systématique de mon application au niveau de l'invoke.
> J'ai fais plusieures recherches sur le net et ne j'arrive pas comprendre
> pourquoi.
>
> Si une personne pouvait m'expliquer ou j'ai fais une erreur ou la méthode à
> employer.
>
> Merci d'avance.
>
> Voici une partie de mon code :
>
> Dans ma classe
> public delegate void pgbStepValueCallback(int pintValue);
> public pgbStepValueCallback myDelegate;
>
> Dans mon constructeur
> myDelegate = new pgbStepValueCallback(pgbStepValueMethod);
>
> Dans mon événement
> private void OnServiceStatus(object sender, ServiceStatusEventArgs e)
> {
> frmRupture objFrmRupture = this;
> objFrmRupture.Invoke(objFrmRupture.myDelegate, new object[] { e.Step });
> Console.WriteLine(e.Step + " - " + e.State);
> }
>
> Ma fonction pour le Delegate
> public void pgbStepValueMethod(int pintValue)
> {
> pgbStep.Value = pintValue;
> }
Bonjour à nouveau,
Ton code pourrait être simplifié de la manière suivante:
private void OnServiceStatus(object sender, ServiceStatusEventArgs e)
{
pgbStep.BeginInvoke(new MethodInvoker
(delegate() { progressBar1.Value = e.Step; }));
Console.WriteLine(e.Step + " - " + e.State);
}
Je n'ai pas vraiment d'idée quand à la raison du blocage de la barre de
progression. Quelques pistes de recherche:
- Les appels à ton Console.WriteLine indiquent bien que e.Step augmente à
chaque fois?
- les valeurs de e.Step sont bien raisonnables en comparaison à
pgbStep.Maximum et pgbStep.Minimum? (par exemple si ton min/max sont 0/1000
et que les step valent entre 0 et 10, tu ne verrais rien)
- Les appels à OnServiceStatus ne sont ils pas trop rapides? ou trop lents?
Luc
"Romuald SAURIN" a écrit :
> Bonjour,
>
> Merci pour ta réponse.
> J'ai testé avec le BeginInvoke, je n'ai plus de figeage mais ma progressebar
> ne bouge pas. J'ai voulu rajouter un EndInvoke mais la le figeage est revenu.
>
> Les valeurs que je passent dans mon évènement sont inférieures au Maximum de
> ma progressbar.
>
> Quand tu me dis que le code est peu orthodoxe, peux-tu me dire ce qu'il
> aurait été mieux de faire car j'ai utilisé plusieurs tutos pour le créer et
> tous les conseils sont les bienvenue.
>
> Romuald
>
> "Lemming" a écrit :
>
> > Bonjour,
> >
> > Le code paraît correct (bien que peu orthodoxe). Es tu certain que la
> > valeur de Step est valide pour pgbStep?
> > Quelques suggestions:
> > - Tente un BeginInvoke, qui rendra la main immédiatement au thread remoting,
> > plutôt qu'un Invoke
> > - Vérifie (if (pintValue > pgbStep.Maximum) return;) la valeur de step, il
> > arrive que les Exceptions cross-thread soient mal/pas rapportées par Visual
> > Studio.
> >
> > Luc
> >
> > "Romuald SAURIN" a écrit :
> >
> > > Bonjour,
> > >
> > > J'ai créé 2 applications qui communique en Net remoting.
> > > Le serveur générent des événements qui remonte bien au client.
> > > Je voudrais au travers de ces événements mettre à jour une barre de
> > > progression.
> > >
> > > Dans la méthode de l'événement, je fis appelle à un invoke mais j'ai un
> > > figeage systématique de mon application au niveau de l'invoke.
> > > J'ai fais plusieures recherches sur le net et ne j'arrive pas comprendre
> > > pourquoi.
> > >
> > > Si une personne pouvait m'expliquer ou j'ai fais une erreur ou la méthode à
> > > employer.
> > >
> > > Merci d'avance.
> > >
> > > Voici une partie de mon code :
> > >
> > > Dans ma classe
> > > public delegate void pgbStepValueCallback(int pintValue);
> > > public pgbStepValueCallback myDelegate;
> > >
> > > Dans mon constructeur
> > > myDelegate = new pgbStepValueCallback(pgbStepValueMethod);
> > >
> > > Dans mon événement
> > > private void OnServiceStatus(object sender, ServiceStatusEventArgs e)
> > > {
> > > frmRupture objFrmRupture = this;
> > > objFrmRupture.Invoke(objFrmRupture.myDelegate, new object[] { e.Step });
> > > Console.WriteLine(e.Step + " - " + e.State);
> > > }
> > >
> > > Ma fonction pour le Delegate
> > > public void pgbStepValueMethod(int pintValue)
> > > {
> > > pgbStep.Value = pintValue;
> > > }
Bonjour à nouveau,
Ton code pourrait être simplifié de la manière suivante:
private void OnServiceStatus(object sender, ServiceStatusEventArgs e)
{
pgbStep.BeginInvoke(new MethodInvoker
(delegate() { progressBar1.Value = e.Step; }));
Console.WriteLine(e.Step + " - " + e.State);
}
Je n'ai pas vraiment d'idée quand à la raison du blocage de la barre de
progression. Quelques pistes de recherche:
- Les appels à ton Console.WriteLine indiquent bien que e.Step augmente à
chaque fois?
- les valeurs de e.Step sont bien raisonnables en comparaison à
pgbStep.Maximum et pgbStep.Minimum? (par exemple si ton min/max sont 0/1000
et que les step valent entre 0 et 10, tu ne verrais rien)
- Les appels à OnServiceStatus ne sont ils pas trop rapides? ou trop lents?
Luc
"Romuald SAURIN" a écrit :
> Bonjour,
>
> Merci pour ta réponse.
> J'ai testé avec le BeginInvoke, je n'ai plus de figeage mais ma progressebar
> ne bouge pas. J'ai voulu rajouter un EndInvoke mais la le figeage est revenu.
>
> Les valeurs que je passent dans mon évènement sont inférieures au Maximum de
> ma progressbar.
>
> Quand tu me dis que le code est peu orthodoxe, peux-tu me dire ce qu'il
> aurait été mieux de faire car j'ai utilisé plusieurs tutos pour le créer et
> tous les conseils sont les bienvenue.
>
> Romuald
>
> "Lemming" a écrit :
>
> > Bonjour,
> >
> > Le code paraît correct (bien que peu orthodoxe). Es tu certain que la
> > valeur de Step est valide pour pgbStep?
> > Quelques suggestions:
> > - Tente un BeginInvoke, qui rendra la main immédiatement au thread remoting,
> > plutôt qu'un Invoke
> > - Vérifie (if (pintValue > pgbStep.Maximum) return;) la valeur de step, il
> > arrive que les Exceptions cross-thread soient mal/pas rapportées par Visual
> > Studio.
> >
> > Luc
> >
> > "Romuald SAURIN" a écrit :
> >
> > > Bonjour,
> > >
> > > J'ai créé 2 applications qui communique en Net remoting.
> > > Le serveur générent des événements qui remonte bien au client.
> > > Je voudrais au travers de ces événements mettre à jour une barre de
> > > progression.
> > >
> > > Dans la méthode de l'événement, je fis appelle à un invoke mais j'ai un
> > > figeage systématique de mon application au niveau de l'invoke.
> > > J'ai fais plusieures recherches sur le net et ne j'arrive pas comprendre
> > > pourquoi.
> > >
> > > Si une personne pouvait m'expliquer ou j'ai fais une erreur ou la méthode à
> > > employer.
> > >
> > > Merci d'avance.
> > >
> > > Voici une partie de mon code :
> > >
> > > Dans ma classe
> > > public delegate void pgbStepValueCallback(int pintValue);
> > > public pgbStepValueCallback myDelegate;
> > >
> > > Dans mon constructeur
> > > myDelegate = new pgbStepValueCallback(pgbStepValueMethod);
> > >
> > > Dans mon événement
> > > private void OnServiceStatus(object sender, ServiceStatusEventArgs e)
> > > {
> > > frmRupture objFrmRupture = this;
> > > objFrmRupture.Invoke(objFrmRupture.myDelegate, new object[] { e.Step });
> > > Console.WriteLine(e.Step + " - " + e.State);
> > > }
> > >
> > > Ma fonction pour le Delegate
> > > public void pgbStepValueMethod(int pintValue)
> > > {
> > > pgbStep.Value = pintValue;
> > > }
Bonjour à nouveau,
Ton code pourrait être simplifié de la manière suivante:
private void OnServiceStatus(object sender, ServiceStatusEventArgs e)
{
pgbStep.BeginInvoke(new MethodInvoker
(delegate() { progressBar1.Value = e.Step; }));
Console.WriteLine(e.Step + " - " + e.State);
}
Je n'ai pas vraiment d'idée quand à la raison du blocage de la barre de
progression. Quelques pistes de recherche:
- Les appels à ton Console.WriteLine indiquent bien que e.Step augmente à
chaque fois?
- les valeurs de e.Step sont bien raisonnables en comparaison à
pgbStep.Maximum et pgbStep.Minimum? (par exemple si ton min/max sont 0/1000
et que les step valent entre 0 et 10, tu ne verrais rien)
- Les appels à OnServiceStatus ne sont ils pas trop rapides? ou trop lents?
Luc
"Romuald SAURIN" a écrit :
> Bonjour,
>
> Merci pour ta réponse.
> J'ai testé avec le BeginInvoke, je n'ai plus de figeage mais ma progressebar
> ne bouge pas. J'ai voulu rajouter un EndInvoke mais la le figeage est revenu.
>
> Les valeurs que je passent dans mon évènement sont inférieures au Maximum de
> ma progressbar.
>
> Quand tu me dis que le code est peu orthodoxe, peux-tu me dire ce qu'il
> aurait été mieux de faire car j'ai utilisé plusieurs tutos pour le créer et
> tous les conseils sont les bienvenue.
>
> Romuald
>
> "Lemming" a écrit :
>
> > Bonjour,
> >
> > Le code paraît correct (bien que peu orthodoxe). Es tu certain que la
> > valeur de Step est valide pour pgbStep?
> > Quelques suggestions:
> > - Tente un BeginInvoke, qui rendra la main immédiatement au thread remoting,
> > plutôt qu'un Invoke
> > - Vérifie (if (pintValue > pgbStep.Maximum) return;) la valeur de step, il
> > arrive que les Exceptions cross-thread soient mal/pas rapportées par Visual
> > Studio.
> >
> > Luc
> >
> > "Romuald SAURIN" a écrit :
> >
> > > Bonjour,
> > >
> > > J'ai créé 2 applications qui communique en Net remoting.
> > > Le serveur générent des événements qui remonte bien au client.
> > > Je voudrais au travers de ces événements mettre à jour une barre de
> > > progression.
> > >
> > > Dans la méthode de l'événement, je fis appelle à un invoke mais j'ai un
> > > figeage systématique de mon application au niveau de l'invoke.
> > > J'ai fais plusieures recherches sur le net et ne j'arrive pas comprendre
> > > pourquoi.
> > >
> > > Si une personne pouvait m'expliquer ou j'ai fais une erreur ou la méthode à
> > > employer.
> > >
> > > Merci d'avance.
> > >
> > > Voici une partie de mon code :
> > >
> > > Dans ma classe
> > > public delegate void pgbStepValueCallback(int pintValue);
> > > public pgbStepValueCallback myDelegate;
> > >
> > > Dans mon constructeur
> > > myDelegate = new pgbStepValueCallback(pgbStepValueMethod);
> > >
> > > Dans mon événement
> > > private void OnServiceStatus(object sender, ServiceStatusEventArgs e)
> > > {
> > > frmRupture objFrmRupture = this;
> > > objFrmRupture.Invoke(objFrmRupture.myDelegate, new object[] { e.Step });
> > > Console.WriteLine(e.Step + " - " + e.State);
> > > }
> > >
> > > Ma fonction pour le Delegate
> > > public void pgbStepValueMethod(int pintValue)
> > > {
> > > pgbStep.Value = pintValue;
> > > }
Bonjour,
Merci pour ta réponse.
J'ai testé avec le BeginInvoke, je n'ai plus de figeage mais ma
progressebar
ne bouge pas. J'ai voulu rajouter un EndInvoke mais la le figeage est
revenu.
Les valeurs que je passent dans mon évènement sont inférieures au
Maximum de
ma progressbar.
Quand tu me dis que le code est peu orthodoxe, peux-tu me dire ce qu'il
aurait été mieux de faire car j'ai utilisé plusieurs tutos pour le créer
et
tous les conseils sont les bienvenue.
Romuald
"Lemming" a écrit :Bonjour,
Le code paraît correct (bien que peu orthodoxe). Es tu certain que la
valeur de Step est valide pour pgbStep?
Quelques suggestions:
- Tente un BeginInvoke, qui rendra la main immédiatement au thread
remoting,
plutôt qu'un Invoke
- Vérifie (if (pintValue > pgbStep.Maximum) return;) la valeur de step,
il
arrive que les Exceptions cross-thread soient mal/pas rapportées par
Visual
Studio.
Luc
"Romuald SAURIN" a écrit :
> Bonjour,
>
> J'ai créé 2 applications qui communique en Net remoting.
> Le serveur générent des événements qui remonte bien au client.
> Je voudrais au travers de ces événements mettre à jour une barre de
> progression.
>
> Dans la méthode de l'événement, je fis appelle à un invoke mais j'ai
un
> figeage systématique de mon application au niveau de l'invoke.
> J'ai fais plusieures recherches sur le net et ne j'arrive pas
comprendre
> pourquoi.
>
> Si une personne pouvait m'expliquer ou j'ai fais une erreur ou la
méthode à
> employer.
>
> Merci d'avance.
>
> Voici une partie de mon code :
>
> Dans ma classe
> public delegate void pgbStepValueCallback(int pintValue);
> public pgbStepValueCallback myDelegate;
>
> Dans mon constructeur
> myDelegate = new pgbStepValueCallback(pgbStepValueMethod);
>
> Dans mon événement
> private void OnServiceStatus(object sender,
ServiceStatusEventArgs e)
> {
> frmRupture objFrmRupture = this;
> objFrmRupture.Invoke(objFrmRupture.myDelegate, new object[]
{ e.Step });
> Console.WriteLine(e.Step + " - " + e.State);
> }
>
> Ma fonction pour le Delegate
> public void pgbStepValueMethod(int pintValue)
> {
> pgbStep.Value = pintValue;
> }
Bonjour,
Merci pour ta réponse.
J'ai testé avec le BeginInvoke, je n'ai plus de figeage mais ma
progressebar
ne bouge pas. J'ai voulu rajouter un EndInvoke mais la le figeage est
revenu.
Les valeurs que je passent dans mon évènement sont inférieures au
Maximum de
ma progressbar.
Quand tu me dis que le code est peu orthodoxe, peux-tu me dire ce qu'il
aurait été mieux de faire car j'ai utilisé plusieurs tutos pour le créer
et
tous les conseils sont les bienvenue.
Romuald
"Lemming" a écrit :
Bonjour,
Le code paraît correct (bien que peu orthodoxe). Es tu certain que la
valeur de Step est valide pour pgbStep?
Quelques suggestions:
- Tente un BeginInvoke, qui rendra la main immédiatement au thread
remoting,
plutôt qu'un Invoke
- Vérifie (if (pintValue > pgbStep.Maximum) return;) la valeur de step,
il
arrive que les Exceptions cross-thread soient mal/pas rapportées par
Visual
Studio.
Luc
"Romuald SAURIN" a écrit :
> Bonjour,
>
> J'ai créé 2 applications qui communique en Net remoting.
> Le serveur générent des événements qui remonte bien au client.
> Je voudrais au travers de ces événements mettre à jour une barre de
> progression.
>
> Dans la méthode de l'événement, je fis appelle à un invoke mais j'ai
un
> figeage systématique de mon application au niveau de l'invoke.
> J'ai fais plusieures recherches sur le net et ne j'arrive pas
comprendre
> pourquoi.
>
> Si une personne pouvait m'expliquer ou j'ai fais une erreur ou la
méthode à
> employer.
>
> Merci d'avance.
>
> Voici une partie de mon code :
>
> Dans ma classe
> public delegate void pgbStepValueCallback(int pintValue);
> public pgbStepValueCallback myDelegate;
>
> Dans mon constructeur
> myDelegate = new pgbStepValueCallback(pgbStepValueMethod);
>
> Dans mon événement
> private void OnServiceStatus(object sender,
ServiceStatusEventArgs e)
> {
> frmRupture objFrmRupture = this;
> objFrmRupture.Invoke(objFrmRupture.myDelegate, new object[]
{ e.Step });
> Console.WriteLine(e.Step + " - " + e.State);
> }
>
> Ma fonction pour le Delegate
> public void pgbStepValueMethod(int pintValue)
> {
> pgbStep.Value = pintValue;
> }
Bonjour,
Merci pour ta réponse.
J'ai testé avec le BeginInvoke, je n'ai plus de figeage mais ma
progressebar
ne bouge pas. J'ai voulu rajouter un EndInvoke mais la le figeage est
revenu.
Les valeurs que je passent dans mon évènement sont inférieures au
Maximum de
ma progressbar.
Quand tu me dis que le code est peu orthodoxe, peux-tu me dire ce qu'il
aurait été mieux de faire car j'ai utilisé plusieurs tutos pour le créer
et
tous les conseils sont les bienvenue.
Romuald
"Lemming" a écrit :Bonjour,
Le code paraît correct (bien que peu orthodoxe). Es tu certain que la
valeur de Step est valide pour pgbStep?
Quelques suggestions:
- Tente un BeginInvoke, qui rendra la main immédiatement au thread
remoting,
plutôt qu'un Invoke
- Vérifie (if (pintValue > pgbStep.Maximum) return;) la valeur de step,
il
arrive que les Exceptions cross-thread soient mal/pas rapportées par
Visual
Studio.
Luc
"Romuald SAURIN" a écrit :
> Bonjour,
>
> J'ai créé 2 applications qui communique en Net remoting.
> Le serveur générent des événements qui remonte bien au client.
> Je voudrais au travers de ces événements mettre à jour une barre de
> progression.
>
> Dans la méthode de l'événement, je fis appelle à un invoke mais j'ai
un
> figeage systématique de mon application au niveau de l'invoke.
> J'ai fais plusieures recherches sur le net et ne j'arrive pas
comprendre
> pourquoi.
>
> Si une personne pouvait m'expliquer ou j'ai fais une erreur ou la
méthode à
> employer.
>
> Merci d'avance.
>
> Voici une partie de mon code :
>
> Dans ma classe
> public delegate void pgbStepValueCallback(int pintValue);
> public pgbStepValueCallback myDelegate;
>
> Dans mon constructeur
> myDelegate = new pgbStepValueCallback(pgbStepValueMethod);
>
> Dans mon événement
> private void OnServiceStatus(object sender,
ServiceStatusEventArgs e)
> {
> frmRupture objFrmRupture = this;
> objFrmRupture.Invoke(objFrmRupture.myDelegate, new object[]
{ e.Step });
> Console.WriteLine(e.Step + " - " + e.State);
> }
>
> Ma fonction pour le Delegate
> public void pgbStepValueMethod(int pintValue)
> {
> pgbStep.Value = pintValue;
> }
Bonjour,
J'ai créé 2 applications qui communique en Net remoting.
Le serveur générent des événements qui remonte bien au client.
Je voudrais au travers de ces événements mettre à jour une barre de
progression.
Dans la méthode de l'événement, je fis appelle à un invoke mais j'ai un
figeage systématique de mon application au niveau de l'invoke.
J'ai fais plusieures recherches sur le net et ne j'arrive pas comprendre
pourquoi.
Si une personne pouvait m'expliquer ou j'ai fais une erreur ou la méthode
à
employer.
Merci d'avance.
Voici une partie de mon code :
Dans ma classe
public delegate void pgbStepValueCallback(int pintValue);
public pgbStepValueCallback myDelegate;
Dans mon constructeur
myDelegate = new pgbStepValueCallback(pgbStepValueMethod);
Dans mon événement
private void OnServiceStatus(object sender, ServiceStatusEventArgs e)
{
frmRupture objFrmRupture = this;
objFrmRupture.Invoke(objFrmRupture.myDelegate, new object[] {
e.Step });
Console.WriteLine(e.Step + " - " + e.State);
}
Ma fonction pour le Delegate
public void pgbStepValueMethod(int pintValue)
{
pgbStep.Value = pintValue;
}
Bonjour,
J'ai créé 2 applications qui communique en Net remoting.
Le serveur générent des événements qui remonte bien au client.
Je voudrais au travers de ces événements mettre à jour une barre de
progression.
Dans la méthode de l'événement, je fis appelle à un invoke mais j'ai un
figeage systématique de mon application au niveau de l'invoke.
J'ai fais plusieures recherches sur le net et ne j'arrive pas comprendre
pourquoi.
Si une personne pouvait m'expliquer ou j'ai fais une erreur ou la méthode
à
employer.
Merci d'avance.
Voici une partie de mon code :
Dans ma classe
public delegate void pgbStepValueCallback(int pintValue);
public pgbStepValueCallback myDelegate;
Dans mon constructeur
myDelegate = new pgbStepValueCallback(pgbStepValueMethod);
Dans mon événement
private void OnServiceStatus(object sender, ServiceStatusEventArgs e)
{
frmRupture objFrmRupture = this;
objFrmRupture.Invoke(objFrmRupture.myDelegate, new object[] {
e.Step });
Console.WriteLine(e.Step + " - " + e.State);
}
Ma fonction pour le Delegate
public void pgbStepValueMethod(int pintValue)
{
pgbStep.Value = pintValue;
}
Bonjour,
J'ai créé 2 applications qui communique en Net remoting.
Le serveur générent des événements qui remonte bien au client.
Je voudrais au travers de ces événements mettre à jour une barre de
progression.
Dans la méthode de l'événement, je fis appelle à un invoke mais j'ai un
figeage systématique de mon application au niveau de l'invoke.
J'ai fais plusieures recherches sur le net et ne j'arrive pas comprendre
pourquoi.
Si une personne pouvait m'expliquer ou j'ai fais une erreur ou la méthode
à
employer.
Merci d'avance.
Voici une partie de mon code :
Dans ma classe
public delegate void pgbStepValueCallback(int pintValue);
public pgbStepValueCallback myDelegate;
Dans mon constructeur
myDelegate = new pgbStepValueCallback(pgbStepValueMethod);
Dans mon événement
private void OnServiceStatus(object sender, ServiceStatusEventArgs e)
{
frmRupture objFrmRupture = this;
objFrmRupture.Invoke(objFrmRupture.myDelegate, new object[] {
e.Step });
Console.WriteLine(e.Step + " - " + e.State);
}
Ma fonction pour le Delegate
public void pgbStepValueMethod(int pintValue)
{
pgbStep.Value = pintValue;
}