Професионална програма
Loading...
CharlieScarver avatar CharlieScarver 33 Точки

[C# OOP] Events - Timer

Искам да попитам за третата задача от домашното за делегати и евенти.
Тази част от условието предполагам забранява Thread.Sleep():

  • The main program's execution should NOT be paused at any time (use some kind of background execution).

Как по друг (интелигентен) начин може да се забави програмата без да е спряна нишката?

Аз имам един празен цикъл до голямо число -.-

Благодаря

Тагове:
0
C# OOP Basics
a_rusenov avatar a_rusenov 1103 Точки
Best Answer

Не трябва да блокираш main thread-a. В такъв случай таймерът трябва да се изпълнява на втори (background) thread. А него можеш да си го блокираш както искаш. Желателният начин е с Thread.Sleep(), както каза Фил. В никакъв случай не пускай блокиращи цикли, понеже:

1. На различни компютри различно бързо ще приключат

2. Хабиш излишно процесорно време в чакане и то много. За сравнение пусни един while (true) и виж какво става в task manager-a :)

2
14/12/2015 14:50:23