Monotouch中的BeginBackgroundTask

Can*_*ide 0 xamarin.ios ios5

我需要在应用程序进入后台后进行一些处理,所以我将此代码添加到我的应用程序中:

public override void DidEnterBackground (UIApplication application)
{
    int taskid = 0;
    taskid = application.BeginBackgroundTask(() => {
        if(taskid != 0)
        {
            System.IO.File.WriteAllText(System.IO.Path.Combine(AppState.Current.User.Path, "blah"), "test");
            application.EndBackgroundTask(taskid);
            taskid = 0;
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

然后我监视文件系统(模拟器应用程序),文件从未写入目标.有什么理由发生这种情况吗?我错过了什么吗?

Dim*_*kos 5

BeginBackgroundTask方法的参数是到期处理程序.它将在您的后台时间到期之前执行.那是你应该只结束任务而不是别的.

它是在BeginBackgroundTask调用之后开始的后台时间.

Apple文档.

使用MonoTouch在iOS上进行多任务处理.