MAUI 项目在 Android 上运行,但在 IOS 上崩溃

MAUI Project Works on Android But Crashes on IOS

我有一个使用 MAUI RC1 的项目,在 Android 模拟器上 运行 运行良好。当它在模拟的 iOS 设备上 运行s 时,它总是崩溃。有问题的代码基于表单的构造函数。我需要一些我需要 运行 异步的代码(你不能在构造函数中这样做),所以我的代码是这样启动的:

Task.Factory.StartNew( () => 
{ 
    AppCheck(); 
});

所有代码现在所做的是创建一个全局范围变量的 属性,然后设置绑定上下文,如下所示:

BindingContext = App.Status;

我在 Mac 上看到一个对话框,其中模拟器 运行ning 显示它“意外退出”并包含大量故障转储详细信息。在 Android 模拟器上,一切正常。所以寻找关于在这里做什么的建议,即是否有某个地方我可以或应该上传转储文件,或者 iOS 不处理异步代码,或者 ??

谢谢,

史蒂夫

版本 1

在 Dispatcher 的线程 (MainThread) 上设置 BindingContext 可能更安全:

Dispatcher.Dispatch(() =>
    BindingContext = ..
);

版本 2

如果你想在主线程上使用await

Dispatcher.Dispatch(async () =>
{
    await ...;
    BindingContext = ...
});

版本 3

如果您有异步代码,您更愿意 运行 在后台线程上:

Task.Run(async () =>
{
    // On background thread.
    await ...;
    ...
    Dispatcher.Dispatch(() =>
    {
        // On Main thread.
        BindingContext = ..
    });
});