Search code examples
xamarinxamarin-studio

How to use RunOnUIThread() in Xamarin Android


I would like to run this statement after getting result into OStateUserId object.

details.Text = OStateUserID.name + "\n" + OStateUserID.population);

bStateuserID.Click +=  async delegate 
{
    details.Text=" ";
    Guid x = new Guid("33F8A8D5-0DF2-47A0-9C79-002351A95F88");
    state OStateUserID =(state) await obj.GetStateByUserId(x.ToString());
    details.Text = OStateUserID.name + "\n" + OStateUserID.population);
};

GetStateByUserId() method returns an object of class State.

It runs asynchronously. After completing operation, I'd like to assign the name and population to the TextView details.

How can i use RunOnUIThread() in this case?


Solution

  • You don't need to.

    In this code you posted:

    bStateuserID.Click +=  async delegate 
    {
        details.Text=" ";
        Guid x = new Guid("33F8A8D5-0DF2-47A0-9C79-002351A95F88");
        state OStateUserID =(state) await obj.GetStateByUserId(x.ToString());
        details.Text = OStateUserID.name + "\n" + OStateUserID.population);
    };
    

    The line

    details.Text = OStateUserID.name + "\n" + OStateUserID.population);
    

    is already running on the UI thread.

    I have an async intro on my blog that explains this behavior.