c#多線程-子線程式控制制UI的例子

來源:互聯網
上載者:User

在子線程裡不能直接使用控制項,需要建立委託,建立一個winform程式,拖拽一個label控制項,id預設就好,代碼如下
using System;<br />using System.Collections.Generic;<br />using System.ComponentModel;<br />using System.Data;<br />using System.Drawing;<br />using System.Linq;<br />using System.Text;<br />using System.Windows.Forms;<br />using System.Threading;</p><p>namespace 子線程式控制制UI<br />{<br /> /// <summary><br /> /// 開發人員:it小金<br /> /// 時間:2010-12-15<br /> /// 功能:子線程式控制制表單中的控制項<br /> /// </summary><br /> public partial class Form1 : Form<br /> {<br /> public Form1()<br /> {<br /> InitializeComponent();<br /> }<br /> private delegate void MoveLabel(int val);//聲明代理 </p><p> void SetOffset(int val)<br /> {<br /> label1.Text = "從子線程裡傳入的值是:" + val.ToString();<br /> }<br /> private void ThreadFun()<br /> {<br /> if (this.InvokeRequired)<br /> {<br /> MoveLabel d = new MoveLabel(SetOffset);<br /> object[] arg = new object[] { 1 };//要傳入的參數值<br /> this.Invoke(d, arg);<br /> }<br /> }</p><p> //表單載入時執行的函數<br /> private void Form1_Load_1(object sender, EventArgs e)<br /> {</p><p> Thread td = new Thread(new ThreadStart(ThreadFun));<br /> td.Start();<br /> } </p><p> }<br />}<br />

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.