多線程操作UI
-
- public class TestForm : Form
- {
-
- private Button button = new Button();
-
- public TestForm()
- {
-
- button.Size = new Size(150, 100);
- button.Click += Button1_Clicked;
- button.Text = "點擊開始測試";
- this.Controls.Add(button);
- this.Text = "多線程範例";
- }
-
- public void Button1_Clicked(object sender, EventArgs e)
- {
-
- new Thread(ThreadProc).Start();
- }
-
- public void ThreadProc()
- {
-
-
- this.Invoke((EventHandler)delegate
- {
- button.Enabled = false;
- });
-
-
- int tick = Environment.TickCount;
- while (Environment.TickCount - tick < 1000)
- {
-
- this.Invoke((EventHandler)delegate
- {
- button.Text = (1000 - Environment.TickCount + tick).ToString() + "微秒後開始更新";
- });
-
- Thread.Sleep(100);
- }
-
- for (int i = 0; i < 10; i++)
- {
- this.Invoke((EventHandler)delegate
- {
- button.Text = i.ToString();
- });
- Thread.Sleep(200);
- }
-
-
- this.Invoke((EventHandler)delegate
- {
- button.Text = "點擊開始測試";
- button.Enabled = true;
- });
- }
- }
沒有留言:
張貼留言