none
Касательно использования WPF DispatcherTimer RRS feed

  • Вопрос

  • Здравствуйте.

    Скажите, пожалуйста, как лучше:

    а) Если я объявляю объект типа DispatcherTimer прямо в потоке UI, инициализирую его там и запускаю.

    или

    б) Если я передаю, в качестве аргумента потокового метода, диспетчер из потока UI в другой поток, запускаемый, например, по щелчку по кнопке, и затем в этом втором потоке определяю объект DispatcherTimer, инициализирую его там и там же запускаю.

    В обоих случаях код обработчика OnTick таймера должен выполнять изменения в пользовательском интерфейсе. Но мне кажется, что в случае б) поток UI будет меньше загружен (т.е. более свободен) за счет того, что таймер определён и выполняется в другом потоке.

    Прав я или нет? Скажите, пожалуйста.

    С уважением  Евгений.

     


    • Изменено TownSparrow 6 декабря 2011 г. 17:37
    6 декабря 2011 г. 17:36

Ответы

  • > UI будет меньше загружен (т.е. более свободен) за счет того, что таймер определён и выполняется в другом потоке.


    в основе используется WinAPI функция SetTimer, которая создает системный таймер. работающий вне управляемых потоков.
    если надо измерить затраченное времемя в случае a) и б), то см. Stopwatch
    или можно использовать performance profiler.
     
     

    • Помечено в качестве ответа TownSparrow 9 декабря 2011 г. 10:09
    7 декабря 2011 г. 9:39