我在打开页面时调用了Appearing,在页面退出之前调用了Disappearing。在MainThread上运行东西的概念对我来说并不清楚,所以我想知道。
是否需要进行任何清理,还是应该放置一些东西以确保任务完全清除而不是悬挂在MainThread上?
public void Appearing()
{
Device.BeginInvokeOnMainThread(() => ShowCards().ContinueWith((arg) => { }));
}
public void Disappearing()
{
App.showCardsWhile = false;
}
public async Task ShowCards()
{
App.showCardsWhile = true;
while (App.showCardsWhile)
{
App.DB.GetData();
// Display the data
}
答案 0 :(得分:2)
你在谈论什么样的清理?您不分配非托管资源既不运行/管理应用程序之外的内容。主要线程我只是一个普通的线程,除了你的UI诞生在那里的事实。
另一个更重要的问题是,我认为没有理由将数据库查询与数据呈现混淆。这感觉就像你必须将你的方法分派给主线程的原因。