Задать вопрос
@ITLDS

Не запускается таймер c# (xamarin), что не так?

Добрый день, пишу простое приложение на Xamarin используя c# и таймеры. "l" = это Label. У меня есть два варианта запуска таймера, первый:
using System.Threading;

int time = 0;
void Button_Clicked(object sender, System.EventArgs e)
		{
			TimerCallback tcb = new TimerCallback(Tick);
			Timer timer = new Timer(tcb, time, 0, 10);
			l.Text = "";
		}
void Tick(object obj, ElapsedEventArgs e)
{
	time++;
        l.Text = time.ToString();
}

Такой вариант не работает, причём, после проверки выяснил, что именно таймер не запускается, так же как и на этом, втором примере:
using System.Timers;

int time = 0;
void Button_Clicked(object sender, System.EventArgs e)
		{
			System.Timers.Timer timer = new System.Timers.Timer(10);
			timer.Elapsed += Tick;
			timer.Start();
			l.Text = "";
		}
void Tick(object obj, ElapsedEventArgs e)
{
	time++;
        l.Text = time.ToString();
}

Что же я делаю не так? Ещё раз замечу, что таймер именно не запускается.
  • Вопрос задан
  • 389 просмотров
Подписаться 2 Простой 2 комментария
Решения вопроса 1
FoggyFinder
@FoggyFinder
В Xamarin.Forms можно использовать Device.StartTimer
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
AsceticSoft
@AsceticSoft
Xamarin-разработчик+fullstack(JavaSpring+Angular)
private System.Threading.Timer timer;

void SomeMethod()
{
    timer = new System.Threading.Timer(_ => {
                            callback();
                        });
    StartTimer(TimeSpan.FromMilliseconds(100));
    StopTimer();
}

void StartTimer(TimeSpan time)
{
    timer.Change(TimeSpan.FromMilliseconds(100), TimeSpan.Zero);
}

void StopTimer()
{
    timer.Change(TimeSpan.Zero, TimeSpan.Zero);
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы