0
     protected override void OnResume()
    {
        base.OnResume();
                    ProgressDialog  progressDialog1 = ProgressDialog.Show(Parent, "", "Please wait...",false);
        new Thread(new ThreadStart(() => {

            RunOnUiThread(() =>
                          {

                try
                {
                    string st="";
                }
                catch (System.Exception ex)
                {

                }
                progressDialog1.Dismiss();
            });
        })).Start();


    }

当我在 try catch 块内放置断点时,进度对话框不可见。但相同的代码在按钮单击事件中工作正常。有人面临同样的问题吗?

4

2 回答 2

1

您正在将非 ui 线程更新为 ui 线程。

你可以使用处理程序。

阅读以下内容

处理来自线程的 UI 代码

于 2013-04-30T11:46:05.760 回答
0

谢谢。

我得到了解决方案:- 我为此创建了处理程序。

static ProgressDialog progressDialog;

  protected override void OnResume()
    {
        base.OnResume();
        progressDialog = ProgressDialog.Show(this, "", "Please wait...");
        loaddata();


    }
   protected void loaddata(){
        new Thread(new ThreadStart(() => {

                string st=""; // place a break point or make the thread wait
                dialogHandler.SendEmptyMessage(0);

        })).Start();

    }

私有处理程序 dialogHandler = new dialogHandlerHelper();

    private class dialogHandlerHelper : Handler
    {
        public dialogHandlerHelper()
        {
        }


        public override void HandleMessage(Message msg)
        {
            base.HandleMessage(msg);
            progressDialog.Dismiss();
        }
    }
于 2013-05-02T04:05:48.607 回答