如何使更改立即显示在用户界面中?

问题描述 投票:0回答:1

对不起,我的英语不好。我是Xamarin android的新手,尝试在用户界面中进行更改时遇到问题。例如,上次我尝试在单击按钮时更改按钮的背景。但这直到单击方法结束才发生。

    private void MainActivity_Click(object sender, EventArgs e)
    {

        ((Button)(sender)).SetBackgroundResource(Resource.Drawable.background);

        //other code to run

    }

我试图在RunOnUiThread和BeginInvokeOnMainThread中做到这一点,但是它也不起作用。调试时,我发现它实际上立即进行了更改,但未出现在应用程序中直到方法完成。还有一个事件,当按下按钮状态= true时,即使释放后按钮仍保持突出显示,它一直像这样一直卡住,直到方法MainActivity_Click结束。再次抱歉我的英语不好。解决方案?

c# multithreading visual-studio user-interface xamarin.android
1个回答
0
投票

似乎您的“其他要运行的代码”阻塞了线程,您可以尝试使用异步任务来处理这些耗时的操作。

尝试以下:

private void MainActivity_Click(object sender, EventArgs e)
{

    ((Button)(sender)).SetBackgroundResource(Resource.Drawable.background);

    DoAsyncTask();

}


public async void DoAsyncTask()
{

  await Task.Run(() =>
   {
     //other code to run
   });

}

你可以看一下Asynchronous programming

© www.soinside.com 2019 - 2024. All rights reserved.