91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#多線程怎么啟動Square

發布時間:2021-12-01 11:43:53 來源:億速云 閱讀:137 作者:iii 欄目:編程語言

本篇內容主要講解“C#多線程怎么啟動Square”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C#多線程怎么啟動Square”吧!

在實際工作中,還需要使用到C#多線程的許多復雜特性。其中一個問題就是如何將程序的數據由線程類的構造器傳入或者傳出。對于放到另外一個線程中的過程,既不能傳參數給它,也不能由它返回值,因為傳入到線程構造器的過程是不能擁有任何參數或者返回值的。為了解決這個問題,可以將過程封裝到一個類中,這樣,方法的參數就可使用類中的字段。

本文給出了一個簡單的例子,計算一個數的平方。為了在一個新的線程中使用這個過程,將它封裝到一個類中,在一個新的C#多線程啟動Square過程。

public class SquareClass  {  publicdouble Value;  public double Square;  public void CalcSquare()  {  Square = Value * Value;  }  }  private void button1_Click(object sender, System.EventArgs e)  {  SquareClass oSquare =new SquareClass();  t2 = new Thread(new ThreadStart(oSquare.CalcSquare));  oSquare.Value = 30;  t2.Start();  }

在上述例子中,線程啟動后,并沒有檢查類中的square值,因為即使調用了線程的start方法,也不能確保其中的方法馬上執行完。要從另一個線程中得到需要的值,有幾種方法,其中一種方法就是在線程完成的時候觸發一個事件。下面所示的代碼為SquareClass加入了事件聲明。

public delegate void EventHandler(double sq);//說明委派類型  public class SquareClass  {  publicdouble Value;  public double Square;  public event EventHandler ThreadComplete;//說明事件對象  public void CalcSquare()  {  Square = Value * Value;  //指定事件處理程序  ThreadComplete+=new EventHandler(SquareEventHandler);  if( ThreadComplete!=null)ThreadComplete(Square);//觸發事件  }  public static void SquareEventHandler(doubleSquare )  //定義事件處理程序  {   MessageBox.Show(Square.ToString ());}  }

對于這種方法,要注意的是事件處理程序SquareEventHandler運行在產生該事件的線程t2中,而不是運行在窗體執行的線程中。

到此,相信大家對“C#多線程怎么啟動Square”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

怀仁县| 兰考县| 上栗县| 九台市| 分宜县| 江西省| 黄骅市| 永德县| 南川市| 如东县| 额尔古纳市| 日照市| 安平县| 岳阳县| 友谊县| 玛沁县| 永新县| 丹棱县| 绥化市| 韶关市| 焉耆| 呼玛县| 双牌县| 应用必备| 高淳县| 盐边县| 嘉禾县| 策勒县| 新闻| 丽江市| 青铜峡市| 元朗区| 星座| 岳阳县| 宁明县| 微山县| 东乡县| 沽源县| 大埔区| 新民市| 松桃|