我需要在Device.BeginInvokeOnMainThread(()=>任务后清理吗?

时间:2017-12-25 06:15:37

标签: c# xamarin xamarin.forms

我在打开页面时调用了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
        }

1 个答案:

答案 0 :(得分:2)

你在谈论什么样的清理?您不分配非托管资源既不运行/管理应用程序之外的内容。主要线程我只是一个普通的线程,除了你的UI诞生在那里的事实。

另一个更重要的问题是,我认为没有理由将数据库查询与数据呈现混淆。这感觉就像你必须将你的方法分派给主线程的原因。