J'ai une application multithread en C# qui essaie d'écrire dans un TextBox dans un Windows.Forms créé par un autre thread.Aide nécessaire avec InvokeRequired pour Web.UI
Comme les threads ne peuvent pas modifier ce qui n'a pas été créé par eux, j'utilisais InvokeRequired comme indiqué sur le code ci-dessous, pour résoudre ce problème.
public delegate void MessageDelegate(Communication message);
void agent_MessageReceived(Communication message)
{
if (InvokeRequired)
{
BeginInvoke(new MessageDelegate(agent_MessageReceived), new object[] { message });
}
else
{
TextBox1.Text += message.Body;
}
}
Maintenant, je dois faire la même chose pour une zone de texte dans une application ASP.NET, mais apparemment ni InvokeRequired ni BeginInvoke existent pour TextBox dans un Web.UI. Que puis-je faire?
Merci, c'était très utile. Je sais maintenant que l'approche doit être changée. Avez-vous une suggestion? – Ali
Désolé pour la réponse tardive. Je n'ai pas remarqué votre commentaire. Une alternative possible si vous avez une opération longue est d'utiliser le traitement de page asynchrone dans ASP.NET. http://msdn.microsoft.com/en-us/magazine/cc163725.aspx ou vous pourriez utiliser quelque chose comme un mécanisme d'interrogation Ajax. – Josh