Xamarin.iOS coreML在后台模式下获取预测空引用错误

Xamarin.iOS coreML在后台模式下获取预测空引用错误,ios,xamarin,xamarin.ios,coreml,Ios,Xamarin,Xamarin.ios,Coreml,当iOS应用程序在后台模式下运行时,model.GetPrediction方法返回空对象。当应用程序位于前台时,该方法返回正确的预测。还有其他人遇到过这个问题吗?两件事: 当应用程序以为背景时,执行任意代码的时间非常有限 您可以检查BackgroundTimeRemaining以确定您还有多少时间 您必须在BeginBackgroundTask操作中执行预测 前景应用程序(包括Springboard)优先于GPU 前置应用程序GPU处理将不会中断,以执行基于后台任务的预测 通过向预测调用提

当iOS应用程序在后台模式下运行时,model.GetPrediction方法返回空对象。当应用程序位于前台时,该方法返回正确的预测。还有其他人遇到过这个问题吗?

两件事:

当应用程序以
为背景时,执行任意代码的时间非常有限

  • 您可以检查
    BackgroundTimeRemaining
    以确定您还有多少时间
  • 您必须在
    BeginBackgroundTask
    操作中执行预测
前景应用程序(包括Springboard)优先于GPU

  • 前置应用程序GPU处理将不会中断,以执行基于后台任务的预测

  • 通过向预测调用提供
    MLPredictionOptions
    ,可以请求预测使用CPU(
    UsesCpuOnly

如果您的应用程序可能在后台运行,或者您的应用程序有其他GPU密集型任务,则应将您的模型限制为CPU


回复:

谢谢您的快速回复。启用UsesCpuOnly选项会在后台返回有效的预测。
UsesCpuOnly
标志也是我们的解决方案。在此处发布了如何执行此操作的示例代码: