Поиск по этому блогу

четверг, 31 мая 2012 г.

Электронные часы

Мне нравится писать программы по чьи-то примерам. Я так быстрее учусь программировать. Недавно писал простенький файловый менеджер, исходник которого был для консольного приложения. Немного поэксперементировав, я смог его сделать в Win Form. Что касается электронных часов - это первая программа, которую я вообще хотел написать. И вот ещё один вариант таких часов, но уже с использованием потоков.



Вот собственно реализация.



namespace Clock2
{
    public partial class Form1 : Form
    {
        // делегат для манипулирования лейбом  
        public delegate void DelegateForTime(Label label);

        // поле типа делегата  
        DelegateForTime DelTime;

        // поток  
        Thread t1;  
        public Form1()
        {
            InitializeComponent();
            DelTime = new DelegateForTime(StartTime);
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            t1 = new Thread(LabelTime);
            t1.IsBackground = true; 
            t1.Priority = ThreadPriority.Lowest; 
            t1.Start();
        }
        // устанавливает время  
        void StartTime(Label label)
        {
            // выводим всегда две цыфры   
            // (00:00)  
            string s = DateTime.Now.Hour.ToString("00");
            s += " : ";
            s += DateTime.Now.Minute.ToString("00");

            s += " : " + DateTime.Now.Second.ToString("00");
            label.Text = s;
        }
        void LabelTime()
        {
            while (true)
            {
                Invoke(DelTime, label1);
            }
        }  
    }
}

Комментариев нет:

Отправить комментарий