Часы
Хочу сделать часы. И вот задумался о том, как сделать обновление времени, наиболее незагружающим способом, а то я сделал так: создал таймер,и каждую секунду делаю time = DateTime.Now и вывожу на экран. В итоге это грузит систему на 100%. Как сделать наиболее оптимальным способом по производительности ?
Хочу сделать часы. И вот задумался о том, как сделать обновление времени, наиболее незагружающим способом, а то я сделал так: создал таймер,и каждую секунду делаю time = DateTime.Now и вывожу на экран. В итоге это грузит систему на 100%. Как сделать наиболее оптимальным способом по производительности ?
в отдельный поток засунь:
{
while (true)
{
Sleep(1000);
time = DateTime.Now();
}
}
Зачем тут использовать поток? Использование таймера тут больше подходит. Не должна программа, которую описал вопрошающий грузить систему на 100%. Наверно, где-то ошибка в коде. Но так как кода автор не выложил, то трудно сказать где она.
был вопрос о наиболее незагружающем способе... мало ли че автор хочет в основную программу вкорячить, а таймер потом понадобится как просто бесплатное приложение к основной сути
Потоки нужны для распараллеливания работы программы. Это полезно, если необходимо, чтобы какие-то операции производились независимо. Однако, нагрузку на систему это увеличивает. Думаю, лучше все же использовать таймер.
Только не тот таймер, что на форму кидается :) Лучше всего таймер, лежащий в System.Threading - он уже сам по себе в отдельном потоке работает. Правда для манипуляции с формой придется синхронизироваться с ней, но это как раз таки момент, который прибавит топикстартеру опыта.
Да еще и .Net небось использует... Уже второй раз тут так попался... В C# и .Net не разбираюсь совсем, извините.