Как приостановить выполнение во время цикла в обработчике события TouchDown кнопки Monotouch - PullRequest
0 голосов
/ 04 мая 2011

Я пробовал Thread.Sleep(1000) в каждой итерации цикла, но infoLabel.Text не изменяется до конца цикла. Он изменяет infoLabel.Text после вызова Thread.Sleep 3 раза.Пожалуйста посоветуй.Вот мой код.

void Handle_Touchdown(object sender, EventArgs e)
{
 for(int i = 0; i < 10; ++i )
 {
    infoLabel.Text = i.ToStraing();
    Thread.Sleep(1000);
 }
}

1 Ответ

4 голосов
/ 04 мая 2011

Возможно, вам лучше реализовать NSTimer и увеличить счетчик.Возможный код может выглядеть так:

void Handle_Touchdown(object sender, EventArgs e)
{
    NSTimer timer;
    int counter = 0;

    timer = NSTimer.CreateRepeatingScheduledTimer(1, delegate{
        if (counter != 10)
        {
            counter++;
            infoLabel.Text = i.ToString();
        }
        else
            timer.Invalidate() // stop the timer
    });
}
...