Je ne peux pas le croire, cela fonctionne dans mon autre application, mais dans celui-ci, qui a une structure similaire - ce n'est pas!Invoquer à partir de thread différent
public string ListAdd
{
set
{
if (listView1.InvokeRequired)
{
this.Invoke((MethodInvoker)delegate
{
listView1.Items.Add(value);
});
}
else
{
listView1.Items.Add(value);
}
}
}
La façon dont je l'appelle:
var formz = Form.ActiveForm as Form1;
if (formz != null)
formz.ListAdd = "asdasdasdasd";
Si je l'appelle de la fonction où je reçois paquet (je veux le mettre sur le listView) sur TCP - Rien ne se passe, mais si je appelez-le dans cette même classe où j'initialise WinSock - cela fonctionne.
Où le problème pourrait-il être? Je viens de déboguer l'application, formz est nulle à l'endroit où je l'appelle (fonction de réception). Pourquoi est-il nul là-bas, mais pas dans un autre endroit?
Vous ne devriez pas travailler comme cela dans un setter de propriété, pensez à le changer en méthode. –