Xamarin.ios UIAlertController不会被解雇

Xamarin.ios UIAlertController不会被解雇,xamarin.ios,Xamarin.ios,在我的Xamarin iOS应用程序中,我有一个显示警报对话框的静态助手方法。如果用户仍未按下“确定”按钮,则该对话框需要在几秒钟后自动消失。以下是简化的代码片段: UIAlertController dlg = UIAlertController.Create(title, text, UIAlertControllerStyle.Alert); dlg.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Cancel,

在我的Xamarin iOS应用程序中,我有一个显示警报对话框的静态助手方法。如果用户仍未按下“确定”按钮,则该对话框需要在几秒钟后自动消失。以下是简化的代码片段:

 UIAlertController dlg = UIAlertController.Create(title, text,
     UIAlertControllerStyle.Alert);
 dlg.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Cancel, null);
 UIApplication.SharedApplication.KeyWindow.RootViewController.
    PresentViewController(dlg, true, null);
稍后,当计时器过期时:

 t.Elapsed += (s, e) => {
     dlg.DismissViewController(true, null);
 };
虽然确实调用了方法
DismissViewController
,但对话框并没有从屏幕上消失

我甚至试着调用
dlg.Dispose()
,但这也没用


有人能帮我理解我错过了什么吗?注意。

事件中的代码不在主线程上

在主线程上调用它

t.Elapsed += (s, e) =>
{
   InvokeOnMainThread(() => {
       dlg.DismissViewController(true, null);
   });
};

事件中经过的代码不在主线程上

在主线程上调用它

t.Elapsed += (s, e) =>
{
   InvokeOnMainThread(() => {
       dlg.DismissViewController(true, null);
   });
};

完美的谢谢,太好了。非常感谢。