C # WP7 одиночный таймер - PullRequest
0 голосов
/ 28 июля 2010

У меня есть одноэлементный таймер в моем приложении WP7, однако я понятия не имею, как заставить его обновлять текстовый блок каждый раз, когда тикает таймер ... Есть ли способ получить обработчик событий тикающего таймера и затем обновить текстовое поле с правильным временем?

Вот то, что я пытался использовать, но не сработало:

public _1()
    {
        InitializeComponent();
        Singleton.TimerSingleton.Timer.Tick += new EventHandler(SingleTimer_Tick);
    }

    void SingleTimer_Tick(object sender)
    {
        textBlock1.Text = Singleton.TimerSingleton.TimeElapsed.TotalSeconds.ToString();
    }

Вот мой Timer.cs SingleTon:

http://tech -fyi.net / код / ​​timer.cs.txt

Ответы [ 3 ]

4 голосов
/ 29 июля 2010
void SingleTimer_Tick(object sender)

Метод выше должен выглядеть примерно так:

void SingleTimer_Tick(object sender, EventArgs e)

И когда вы задаете вопрос, пожалуйста, правильно сформулируйте свою терминологию и предоставьте более подробную информацию. Это поможет вам быстрее получить правильный ответ. Например, когда вы говорите «приложение не позволяет мне звонить ...», вы на самом деле имеете в виду, что компилятор выдает ошибку.

3 голосов
/ 28 июля 2010

Метод SingleTimer_Tick выполняется в потоке без графического интерфейса. Звоните

textBlock1.Invoke (() => textBlock1.Text = Singleton.TimerSingleton.TimeElapsed.TotalSeconds.ToString ());

0 голосов
/ 28 июля 2010

Я не уверен, какой у тебя тип таймера.Некоторые используются для создания событий в потоке пула потоков, другие в потоке графического интерфейса.Если бы вы могли сообщить нам тип вашего таймера (System.Timers.Timer, System.Threading.Timer и т. Д.), Я могу рассказать вам, для чего он используется.Однако, если я правильно помню, Tick используется для таймера GUI, в то время как Elapsed используется для других таймеров - я могу ошибаться.

С риском покровительства вас, я собираюсь спросить, если вызапустил таймер или нет :) Обычно вызов Start () или установка Enabled в значение true запускает объект таймера.Если вы ожидаете, что таймер уже запущен, вы должны иметь возможность проверить свойство, такое как Включено, чтобы утверждать, что он работает, прежде чем подключить событие.

Кроме этого, я бы сделал некоторую отладку в стиле printfпроверьте, что событие действительно вызывается.

...