System.Timers.Timer t;int sum = 0;int qian;int bai;int shi;int ge;public 測試定時啟動(){InitializeComponent();}//1.使用System.Timers.Timer//2.threadThread th;//定義線程private void 測試定時啟動_Load(object sender, EventArgs e){textBox1.Text = "00.00";t = new System.Timers.Timer(1000);t.Elapsed += new System.Timers.ElapsedEventHandler(theout);//到達時間的時候執行事件;t.AutoReset = true;//設置是執行一次(false)還是一直執行(true); th = new Thread(calculate);//2.線程方法th.IsBackground = true;}private void theout(object sender, EventArgs e){sum++;qian = sum / 1000;bai = sum % 1000 / 100;shi = sum % 100 / 10;ge = sum % 10;textBox1.Text = qian.ToString() + bai.ToString() + "." + shi.ToString() + ge.ToString();lbmessge.Items.Insert(0, "我1111");}private void button1_Click(object sender, EventArgs e){t.Enabled = true;//是否執行System.Timers.Timer.Elapsed事件;//如果不寫下面這句會有一個異常。//異常:線程間操作無效: 從不是創建控件"richtextbox"的線程訪問它//但這不是最好的方法。如果只有一個進程調用richtextbox而已。就可以用下面這句//如果有多個線程調用richtextbox等控件。就要用委托。見thread第二種方法 Control.CheckForIllegalCrossThreadCalls = false;}private void calculate()//線程的第一種方法 {while (true){sum++;qian = sum / 1000;bai = sum % 1000 / 100;shi = sum % 100 / 10;ge = sum % 10;textBox1.Text = qian.ToString() + bai.ToString() + "." + shi.ToString() + ge.ToString();Thread.Sleep(1000);}}
public partial class 測試定時啟動 : Form{System.Timers.Timer t;int sum = 0;int qian;int bai;int shi;int ge;public 測試定時啟動(){InitializeComponent();}//1.使用System.Timers.Timer//2.threadThread th;//定義線程private void 測試定時啟動_Load(object sender, EventArgs e){textBox1.Text = "00.00";th = new Thread(calculate);th.IsBackground = true;}private void calculate()//線程的第一種方法 {while (true){sum++;qian = sum / 1000;bai = sum % 1000 / 100;shi = sum % 100 / 10;ge = sum % 10;textBox1.Text = qian.ToString() + bai.ToString() + "." + shi.ToString() + ge.ToString();Thread.Sleep(1000);}}private void button1_Click(object sender, EventArgs e){th.Start();Control.CheckForIllegalCrossThreadCalls = false; // 同2,不寫會報錯 }}
?
?System.Timers.Timer t;? ? ? ? int sum = 0;? ? ? ? int qian;? ? ? ? int bai;? ? ? ? int shi;? ? ? ? int ge;? ? ? ? public 測試定時啟動()? ? ? ? {? ? ? ? ? ? InitializeComponent();? ? ? ? }
? ? ? ? //1.使用System.Timers.Timer? ? ? ? //2.thread? ? ? ? Thread th;//定義線程? ? ? ? private void 測試定時啟動_Load(object sender, EventArgs e)? ? ? ? {? ? ? ? ? ? textBox1.Text = "00.00";? ? ? ? ? ? t = new System.Timers.Timer(1000);? ? ? ? ? ? t.Elapsed += new System.Timers.ElapsedEventHandler(theout);//到達時間的時候執行事件;? ? ? ? ? ? t.AutoReset = true;//設置是執行一次(false)還是一直執行(true); ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? th = new Thread(calculate);//2.線程方法? ? ? ? ? ? th.IsBackground = true;? ? ? ? }
? ? ? ? private void theout(object sender, EventArgs e)? ? ? ? {? ? ? ? ? ? sum++;? ? ? ? ? ? qian = sum / 1000;? ? ? ? ? ? bai = sum % 1000 / 100;? ? ? ? ? ? shi = sum % 100 / 10;? ? ? ? ? ? ge = sum % 10;? ? ? ? ? ? textBox1.Text = qian.ToString() + bai.ToString() + "." + shi.ToString() + ge.ToString();? ? ? ? ? ? lbmessge.Items.Insert(0, "我1111");? ? ? ? }
? ? ? ? private void button1_Click(object sender, EventArgs e)? ? ? ? {? ? ? ? ? ? t.Enabled = true;//是否執行System.Timers.Timer.Elapsed事件;? ? ? ? ? ? //如果不寫下面這句會有一個異常。? ? ? ? ? ? //異常:線程間操作無效: 從不是創建控件"richtextbox"的線程訪問它? ? ? ? ? ? //但這不是最好的方法。如果只有一個進程調用richtextbox而已。就可以用下面這句? ? ? ? ? ? //如果有多個線程調用richtextbox等控件。就要用委托。見thread第二種方法
? ? ? ? ? ? Control.CheckForIllegalCrossThreadCalls = false;? ? ? ? }
? ? ? ? private void calculate()//線程的第一種方法? ? ? ? {? ? ? ? ? ? while (true)? ? ? ? ? ? {? ? ? ? ? ? ? ? sum++;? ? ? ? ? ? ? ? qian = sum / 1000;? ? ? ? ? ? ? ? bai = sum % 1000 / 100;? ? ? ? ? ? ? ? shi = sum % 100 / 10;? ? ? ? ? ? ? ? ge = sum % 10;? ? ? ? ? ? ? ? textBox1.Text = qian.ToString() + bai.ToString() + "." + shi.ToString() + ge.ToString();? ? ? ? ? ? ? ? Thread.Sleep(1000);? ? ? ? ? ? }? ? ? ? }