SatanicPunker
Messages postés19Date d'inscriptionsamedi 22 octobre 2005StatutMembreDernière intervention18 février 2008
-
9 mai 2007 à 17:17
SatanicPunker
Messages postés19Date d'inscriptionsamedi 22 octobre 2005StatutMembreDernière intervention18 février 2008
-
10 mai 2007 à 12:42
Bonjour,
Je suis en plein codage d'une application de reconnaissance vocale et je bloque sur un truc:
Voila, J'ai un bouton qui permet d'activer la reconnaissance vocale, et il faut réappuyer sur ce bouton pour arrêter la reconnaissance vocale.
Voila le code :
if (button2.Text == "Enable speak")
{
gr = new Grammar(textBox1, this);
textBox1.Enabled = true;
button2.Text = "Stop";
}
else if (button2.Text == "Stop") {
gr = null;
button2.Text = "Enable speak";
textBox1.Enabled = false;
}
Le problème est l'objet "Grammar", je le crée au moment du clique sur le bouton enable speak, et lorsqu'il stoppe, je le remet à Null.
Mais il continue à tourner même à null et je ne comprend pas vraiment pourquoi.
C'est une application de Speech-to-text, et c'est bien dommage que même à Stop, il réussisse à changer les mots dans la TextBox.
Si quelqu'un peut m'aider, c'est cool.
Merci
A voir également:
Un objet qui autorise la valeur null doit posséder une valeur.
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 9 mai 2007 à 18:31
Salut, "gr = null;" ça donne rien car les destructeurs en C# ne sont pas déterministes, c-à-d que l'objet sera supprimé de la mémoire quand le GC passera par là.. Soit ton objet possède une méthode Dispose, une fonction Close ou quelque chose comme ça.. Soit c'est un objet COM et tu peux liberer avec Marshal.ReleaseComObject.
SatanicPunker
Messages postés19Date d'inscriptionsamedi 22 octobre 2005StatutMembreDernière intervention18 février 2008 10 mai 2007 à 11:15
Bonjour, le Problème, c'est que ce n'est pas un objet COM, c'est une classe que j'ai conçue moi-même.
Donc le Marshal.realeaseComObject ne marche pas.
Est-ce que je dois opter pour une méthode dispose ou destroy pour en finir avec lui?