locked
delegate problem cross-thread RRS feed

  • Question

  • var proxy = new RichMediaXmlRpcProxy();

    proxy.BeginGetRichSession(int.Parse(textBox1.Text), "", new XmlRpcStruct(), "", asr =>

    {
    label3.text = "Test En Cours";
    proxy.EndGetMethodesValue(asr);              
    })                                                

    l'exception est la suivante :System.InvalidOperationException 

    le msg est :  Cross-thread operation not valid: Control 'label3' accessed from a thread other than the thread it was created on.

    comment je peux resoudre ce problem svp

    lundi 5 mars 2012 16:24

Réponses

  • Bonjour,

    Toutes les modifications touchant à l'UI (dans ton cas un label) doit être exécuté dans le Thread UI. Tu as une méthode simple pour cela, appeler ton code dans le Dispatcher (qui rebalance ton code à la prochaine update de l'UI).

    Exemple :

    var proxy = new RichMediaXmlRpcProxy();

                proxy.BeginGetRichSession(int.Parse(textBox1.Text), "", new XmlRpcStruct(), "", asr =>
                {
                    Dispatcher.BeginInvoke(() =>
                        {
                            label3.text = "Test En Cours";
                        });
                    proxy.EndGetMethodesValue(asr);
                });

    lundi 5 mars 2012 17:17