if (m_aFFilmsListe == null)
{
// Déclaration de la fenetre
m_aFFilmsListe = new FFilmsListe(this);
}
// On docke la fenetre dans le Tab 1
m_aFFilmsListe.Dock = System.Windows.Forms.DockStyle.Fill;
m_aFFilmsListe.FormBorderStyle =
System.Windows.Forms.FormBorderStyle.None;
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Paul Bacelar
Je pense qu'il vaut mieux affronter le Dragon que fuir.
Votre exemple de code m'inspire les inquiétudes suivantes:
- La méthode "mListeFilms_ItemClick" semble être une méthode utilisée via un delegate.
- Hors, on ne maîtrise pas le thread qui exécute un delegate.
- Dans la méthode "mListeFilms_ItemClick", vous modifiez des propriétés et appelez des méthodes de classes graphiques qui ne sont pas thread-safe, elles ne doivent être modifiées ou appelé que par le thread créateur de la fenêtre.
Je pense donc que l'utilisation de la méthode Invoke des composants graphiques s'impose pour que le bon thread fasse le travail de modifications de propriétés et d'appels de méthodes. -- Paul Bacelar MVP VC++
"Philippe Cazaux-Moutou" wrote in message news:44501e0e$0$20171$
Bonjour
Venant de Delphi, je me servais de FindWindow pour savoir si une fenetre etait ouverte
comment faire la meme chose avec C#, car je ne trouves pas cette fonction
en fait ce serait pour remplacer ce code, avec lequel j ai des soucis, car il plante la dessus
if (m_aFFilmsListe == null) { // Déclaration de la fenetre m_aFFilmsListe = new FFilmsListe(this);
}
// On docke la fenetre dans le Tab 1 m_aFFilmsListe.Dock = System.Windows.Forms.DockStyle.Fill; m_aFFilmsListe.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
// Affichage de la fenetre m_aFFilmsListe.Show(); // m_aFFilmsListe = null; }
Merci
Je pense qu'il vaut mieux affronter le Dragon que fuir.
Votre exemple de code m'inspire les inquiétudes suivantes:
- La méthode "mListeFilms_ItemClick" semble être une méthode utilisée via un
delegate.
- Hors, on ne maîtrise pas le thread qui exécute un delegate.
- Dans la méthode "mListeFilms_ItemClick", vous modifiez des propriétés et
appelez des méthodes de classes graphiques qui ne sont pas thread-safe,
elles ne doivent être modifiées ou appelé que par le thread créateur de la
fenêtre.
Je pense donc que l'utilisation de la méthode Invoke des composants
graphiques s'impose pour que le bon thread fasse le travail de modifications
de propriétés et d'appels de méthodes.
--
Paul Bacelar
MVP VC++
"Philippe Cazaux-Moutou" <ancestrologieNO@SPAMwanadoo.fr> wrote in message
news:44501e0e$0$20171$8fcfb975@news.wanadoo.fr...
Bonjour
Venant de Delphi, je me servais de FindWindow pour savoir si une fenetre
etait ouverte
comment faire la meme chose avec C#, car je ne trouves pas cette fonction
en fait ce serait pour remplacer ce code, avec lequel j ai des soucis,
car il plante la dessus
if (m_aFFilmsListe == null)
{
// Déclaration de la fenetre
m_aFFilmsListe = new FFilmsListe(this);
}
// On docke la fenetre dans le Tab 1
m_aFFilmsListe.Dock = System.Windows.Forms.DockStyle.Fill;
m_aFFilmsListe.FormBorderStyle =
System.Windows.Forms.FormBorderStyle.None;
Je pense qu'il vaut mieux affronter le Dragon que fuir.
Votre exemple de code m'inspire les inquiétudes suivantes:
- La méthode "mListeFilms_ItemClick" semble être une méthode utilisée via un delegate.
- Hors, on ne maîtrise pas le thread qui exécute un delegate.
- Dans la méthode "mListeFilms_ItemClick", vous modifiez des propriétés et appelez des méthodes de classes graphiques qui ne sont pas thread-safe, elles ne doivent être modifiées ou appelé que par le thread créateur de la fenêtre.
Je pense donc que l'utilisation de la méthode Invoke des composants graphiques s'impose pour que le bon thread fasse le travail de modifications de propriétés et d'appels de méthodes. -- Paul Bacelar MVP VC++
"Philippe Cazaux-Moutou" wrote in message news:44501e0e$0$20171$
Bonjour
Venant de Delphi, je me servais de FindWindow pour savoir si une fenetre etait ouverte
comment faire la meme chose avec C#, car je ne trouves pas cette fonction
en fait ce serait pour remplacer ce code, avec lequel j ai des soucis, car il plante la dessus
if (m_aFFilmsListe == null) { // Déclaration de la fenetre m_aFFilmsListe = new FFilmsListe(this);
}
// On docke la fenetre dans le Tab 1 m_aFFilmsListe.Dock = System.Windows.Forms.DockStyle.Fill; m_aFFilmsListe.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;