我需要每秒从ARGB值设置应用程序的背景颜色,到目前为止,大多数尝试告诉我'只有原始线程可以触摸它的视图',所以我想知道是否有办法在C#?
答案 0 :(得分:2)
在Xamarin中,您希望使用Activity.RunOnUIThread
在UI线程上运行代码。您只能从UI线程更新UI - 此规则没有例外。
RunOnUiThread (() =>
// Code to run on UI thread here
);
https://developer.xamarin.com/api/member/Android.App.Activity.RunOnUiThread/p/System.Action/
进一步阅读:
https://developer.xamarin.com/guides/android/advanced_topics/writing_responsive_applications/
答案 1 :(得分:0)
正确,您只能从主(UI)线程更新视图。有很多方法可以定期安排UI更新 - 您可以使用HandlerThread或AsyncTask或Timer,但实际上最简单的方法就是使用Handler(java) :
final Handler handler = new Handler();
Runnable job = new Runnable() {
@Override
public void run() {
// Set background color
handler.postDelayed(this, 1000);
}
};
job.run();
应直接转换为C#。