【问题标题】:Xamarin - iOS Async Task in an override functionXamarin - 覆盖函数中的 iOS 异步任务
【发布时间】:2017-02-14 15:22:57
【问题描述】:

我想对 REST API 进行服务调用以检查值,如果为真,则将用户带到新页面。我不想展示一个视图控制器,我只想使用一个我已经连接好的segue。

检查值的服务调用是异步任务,我在 segue 尝试触发时调用它(当用户按下按钮时)

public override bool ShouldPerformSegue(string segueIdentifier, NSObject sender)
{
    .. run check here, and return true or false to fire the segue
}

问题是 C# 希望我将此方法修改为 async Task 或 async void 或 async Task ,但这会破坏“覆盖”,因为我不再覆盖。

使用异步编程处理调用的正确方法是什么,然后在调用完成后将用户带走?

非常感谢。

【问题讨论】:

    标签: xamarin xamarin.ios


    【解决方案1】:

    您可以尝试在 Task 中启动您的方法,完成后将用户带走。

    例子:

    var someTask = Task.Run(async () =>
    {
        var EventModal = await Method();
        await Navigation.PushAsync(Page(EventModal.Stuff));
    });
    

    【讨论】:

    • 这个问题是你仍在执行一些异步操作,这可能会在某些时间出现问题。无论如何都应该避免在 shouldperform segue 中进行服务调用。
    猜你喜欢
    • 1970-01-01
    • 2017-09-30
    • 2019-02-19
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-14
    • 2016-05-08
    相关资源
    最近更新 更多