Я разрабатываю приложение для iPad на основе опроса, используя Monotouch, и пытаюсь внедрить таймер, который возвращает опрос на первый вопрос, если кто-то слишком долго отвечает (_survey.Timeout).
Я использую следующий код в контроллере представления, и он работает нормально при первом запуске, но продолжает цикл - поэтому вопрос в том, как мне остановить поток и правильно распорядиться таймером, когда новый контроллер представления помещается такчто он эффективно перезапускается с 0 секунд в новом представлении.
/* ViewDidLoad */
if (_survey.CurrentQuestion != 1)
{
var thread = new Thread(StartTimer as ThreadStart);
thread.Start();
}
/* ThreadStart */
void StartTimer()
{
using (var pool = new NSAutoreleasePool())
{
NSTimer.CreateScheduledTimer(_survey.Timeout, delegate {
_survey.CurrentQuestion = 1;
_survey.Responses.Clear();
QuestionController qvc = new QuestionController(_survey);
this.NavigationController.PushViewController(qvc, false);
});
NSRunLoop.Current.Run();
}
}
Я знаю, что это, вероятно, что-то глупо простое, но, пожалуйста, избавьте меня от моих страданий!