Q:

Error in Xamarin Android with a progress dialog “Only the original thread that created a view hierarchy can touch its views”

I'm trying to use a progress dialog, while filling a datagrid, but I get the following error: "Only the original thread that created a view hierarchy can touch its views", this is my code, i hope they can help me
public async void RelacionClientesREST()
        {
            try
            {
                var dlg = ProgressDialog. Show(this, "Loading", "Cargando relación de usuarios");
                ThreadPool. QueueUserWorkItem(d => {

                    RestClient client = new RestClient("http://portalclientewa.azurewebsites.net/api/RelacionClientes/");
                    var request = new RestRequest("GetData", Method. GET);
                    request. Timeout = 1500000;
                    request. RequestFormat = DataFormat. Json;
                    request. AddParameter("idP", Idp);
                    var temp = client. Execute(request).Content;
                    var parsedJson = JsonConvert. DeserializeObject(temp).ToString();
                    var lst = JsonConvert. DeserializeObject<List<ClientesProp>>(parsedJson).ToList();
                    dataGrid. ItemsSource = lst;

                    RunOnUiThread(() => {
                        dlg. Dismiss();
                    });
                });
            }
            catch (Exception ex)
            {
                Toast. MakeText(this, "No hay datos registrados", ToastLength. Short).Show();
            }
        }

A:

The error is telling you the app's UI must be handled by the main thread.  In your code, you are running some code on a background thread (ThreadPool. QueueUserWorkItem) that needs to be run on the UI thread (RunOnUiThread) instead.