У меня проблема с использованием NSTimer в MonoTouch. Для начала я запустил NSTimer в моем основном потоке, который работал. Тем не менее, я переместил таймер в отдельный поток, и я никогда не получаю обратный вызов. Я предполагаю, что это потому, что мой поток в стиле .NET не является циклом выполнения - но я совершенно новичок в MonoTouch / iOS, поэтому не уверен.
Я извлек код в тестовый проект, и у меня возникла та же проблема. Это код, который не работает:
var thread=new Thread(StartTimer as ThreadStart);
thread.Start();
[Export("StartTimer")]
void StartTimer()
{
using(var pool = new NSAutoreleasePool())
{
timer=NSTimer.CreateRepeatingScheduledTimer(2,delegate { Twitch() } );
Thread.Sleep(1000000); // do I have to yield here somehow?
}
}
void Twitch()
{
Debug.WriteLine("Twitch");
}