c#.net

C#.net 델리게이트

우유빛 2010. 1. 29. 09:30


public delegate void Dele();

         public Form1()

        {

            InitializeComponent();

             th = new Thread(new ThreadStart(RunThread));

            th.Start();

        }

         void RunThread()

        {

           Dele de = new Dele(AddControl);

           this.Invoke(de);

        }

         void AddControl()

        {

            tb = new TextBox();

            Controls.Add(tb);

        }


public delegate void SetTextCallback (Control control,string text);

private void SetText(Control control, string text)

{

if (control.InvokeRequired)

{

SetTextCallback d = new SetTextCallback(SetText);

this.Invoke(d, new object[] { control, text });


}

else

{

control.Text = text;

}

}


Thread _thread;
        private delegate void DisplayDateTimeHandler();

        private void Form1_Load(object sender, EventArgs e)
        {
            _thread = new Thread(StartNewThread);
            _thread.Start();
        }

        private void StartNewThread()
        {
            while (true)
            {
                if (label1.InvokeRequired)
                    label1.Invoke(new DisplayDateTimeHandler(DisplayDateTime));
                else
                    DisplayDateTime();

                Thread.Sleep(1000);
            }
        }

        private void DisplayDateTime()
        {
            label1.Text = DateTime.Now.ToString();
        }