日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁(yè)編程開(kāi)發(fā)C#.NET → C#中的跨線程調(diào)用

      C#中的跨線程調(diào)用

      相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:本站整理時(shí)間:2010/11/23 11:19:42字體大小:A-A+

      作者:佚名點(diǎn)擊:581次評(píng)論:0次標(biāo)簽: 跨線程

      • 類(lèi)型:塔防游戲大。34.5M語(yǔ)言:中文 評(píng)分:10.0
      • 標(biāo)簽:
      立即下載
      在開(kāi)發(fā)具有線程的應(yīng)用程序時(shí),有時(shí)會(huì)通過(guò)子線程實(shí)現(xiàn)Windows窗體,以及控件的操作,比如:在對(duì)文件進(jìn)行復(fù)制時(shí),為了使用戶可以更好的觀察到文件的復(fù)制情況,可以在指定的Windows窗體上顯示一個(gè)進(jìn)度條,為了避免文件復(fù)制與進(jìn)度條的同時(shí)操作所帶來(lái)的機(jī)器假死狀態(tài),可以用子線程來(lái)完成文件復(fù)制與進(jìn)度條跟蹤操作,下面以簡(jiǎn)單的例子在子線程中操作窗體中的TextBox控件。代碼如下:

      using System;
      using System.Collections.Generic;
      using System.ComponentModel;
      using System.Data;
      using System.Drawing;
      using System.Linq;
      using System.Text;
      using System.Windows.Forms;

      using System.Threading;//添加線程的命名空間

      namespace ppp
      {
      public partial class Form1 : Form
      {
      public Form1()
      {
      InitializeComponent();
      }

      Thread t; //定義線程變量

      private void button1_Click(object sender, EventArgs e)
      {
      t = new Thread(new ThreadStart(Threadp)); //實(shí)例化線程
      t.Start();//啟動(dòng)線程
      }
      自定義方法Threadp,主要用于線程的調(diào)用。代碼如下:
      public void Threadp()
      {
      textBox1.Text = "實(shí)現(xiàn)在子線程中操作主線程中的控件";
      t.Abort();//關(guān)閉線程
      }
      }

      圖1 在子線程中操作主線程中控件的錯(cuò)誤提示信息:



      以上是通過(guò)一個(gè)子線程來(lái)操作主線程中的控件,但是,這樣作會(huì)出現(xiàn)一個(gè)問(wèn)題(如圖1所示),就是TextBox控件是在主線程中創(chuàng)建的,在子線程中并沒(méi)有對(duì)其進(jìn)行創(chuàng)建,也就是從不是創(chuàng)建控件的線程訪問(wèn)它。那么,如何解決跨線程調(diào)用Windows窗體控件呢?可以用線程委托實(shí)現(xiàn)跨線程調(diào)用Windows窗體控件。下面將上一個(gè)例子進(jìn)行一下改動(dòng)。代碼如下:
      using System;
      using System.Collections.Generic;
      using System.ComponentModel;
      using System.Data;
      using System.Drawing;
      using System.Linq;
      using System.Text;
      using System.Windows.Forms;

      using System.Threading;//添加線程的命名空間

      namespace ppp
      {
      public partial class Form1 : Form
      {
      public Form1()
      {
      InitializeComponent();
      }

      Thread t; //定義線程變量

      private void button1_Click(object sender, EventArgs e)
      {
      t = new Thread(new ThreadStart(Threadp)); //實(shí)例化線程
      t.Start();//啟動(dòng)線程
      }

      private delegate void setText();//定義一個(gè)線程委托
      自定義方法Threadp,主要用于線程的調(diào)用。代碼如下:
      public void Threadp()
      {
      setText d = new setText(Threading); //實(shí)例化一個(gè)委托
      this.Invoke(d); //在擁用此控件的基礎(chǔ)窗體句柄的線程上執(zhí)行指定的委托
      }
      自定義方法Threading,主要作于委托的調(diào)用。代碼如下:
      public void Threading()
      {
      textBox1.Text = "實(shí)現(xiàn)在子線程中操作主線程中的控件";
      t.Abort();//關(guān)閉線程
      }
      }
      }
        魔獸塔防地圖
        (300)魔獸塔防地圖
        塔防,即炮塔防御的簡(jiǎn)稱,也稱。塔防受眾很廣,游戲模式簡(jiǎn)單而可玩性強(qiáng),是智力和策略的比拼。當(dāng)塔防與這兩種游戲類(lèi)型融合在一起的話,游戲就會(huì)變得更好玩,同時(shí)也很休閑。小編在這里為大家搜集整理了許多魔獸爭(zhēng)霸塔防地圖,歡迎感興趣的玩家們前來(lái)下載。...更多>>
        塔防游戲
        (70)塔防游戲
        西西游戲網(wǎng)提供最新最熱門(mén)的塔防游戲,塔防游戲顧名思義就是炮塔防守游戲,玩家需要建造炮塔轟炸一些進(jìn)攻的敵人保衛(wèi)家園,塔防游戲操作都很簡(jiǎn)單,就是在最合理的位置放置炮塔,無(wú)需其他的操作,可能有的塔防游戲會(huì)添加一些技能,但是也沒(méi)什么難度的哦.熱門(mén)游戲保衛(wèi)蘿卜獸人必須死炮塔防御塔防三國(guó)志等等,太多了。...更多>>

        相關(guān)評(píng)論

        閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過(guò)難過(guò)
        • 5 囧
        • 3 圍觀圍觀
        • 2 無(wú)聊無(wú)聊

        熱門(mén)評(píng)論

        最新評(píng)論

        發(fā)表評(píng)論 查看所有評(píng)論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)