最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c#線程間傳遞參數詳解

 更新時間:2014年01月22日 09:23:51   作者:  
本篇文章主要是對c#中的線程間傳遞參數進行了詳細的介紹,需要的朋友可以過來參考下,希望對大家有所幫助

線程操作主要用到Thread類,他是定義在System.Threading.dll下。使用時需要添加這一個引用。該類提供給我們四個重載的構造函數(以下引自msdn)。

Thread (ParameterizedThreadStart)  初始化 Thread 類的新實例,指定允許對象在線程啟動時傳遞給線程的委托。 
Thread (ThreadStart)  初始化 Thread 類的新實例。 

Thread (ParameterizedThreadStart, Int32)  初始化 Thread 類的新實例,指定允許對象在線程啟動時傳遞給線程的委托,并指定線程的最大堆棧大小。 
Thread (ThreadStart, Int32)  初始化 Thread 類的新實例,指定線程的最大堆棧大小。

我們如果定義不帶參數的線程,可以用ThreadStart;帶一個參數的用ParameterizedThreadStart。帶多個參數的用另外的方法,下面逐一講述。

一、不帶參數的

復制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;

namespace AAAAAA
{
    class AAA
    {
        public static void Main()
        {
            Thread t = new Thread(new ThreadStart(A));
            t.Start();

            Console.Read();
        }

        private static void A()
        {
            Console.WriteLine("Method A!");
        }
    }
}


二、帶一個參數的
由于ParameterizedThreadStart要求參數類型必須為object,所以定義的方法B形參類型必須為object。
復制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;

namespace AAAAAA
{
    class AAA
    {
        public static void Main()
        {       
            Thread t = new Thread(new ParameterizedThreadStart(B));
            t.Start("B");

            Console.Read();
        }

        private static void B(object obj)
        {
            Console.WriteLine("Method {0}!",obj.ToString ());

        }
    }
}


結果顯示Method B!

三、帶多個參數的
由于Thread默認只提供了這兩種構造函數,如果需要傳遞多個參數,我們可以自己將參數作為類的屬性。定義類的對象時候實例化這個屬性,然后進行操作。

復制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;

namespace AAAAAA
{
    class AAA
    {
        public static void Main()
        {
            My m = new My();
            m.x = 2;
            m.y = 3;

            Thread t = new Thread(new ThreadStart(m.C));
            t.Start();

            Console.Read();
        }
    }

    class My
    {
        public int x, y;

        public void C()
        {
            Console.WriteLine("x={0},y={1}", this.x, this.y);
        }
    }
}


結果顯示x=2,y=3

四、利用結構體給參數傳值。
定義公用的public struct結構體,里面可以定義自己需要的參數,然后在需要添加線程的時候,可以定義結構體的實例。

復制代碼 代碼如下:

//結構體
  struct RowCol
    {
        public int row;
        public int col;
    };

//定義方法
public void Output(Object rc)
        {
            RowCol rowCol = (RowCol)rc;
            for (int i = 0; i < rowCol.row; i++)
            {
                for (int j = 0; j < rowCol.col; j++)
                    Console.Write("{0} ", _char);
                Console.Write("/n");
            }
        }

相關文章

  • C#靜態(tài)構造函數用法實例分析

    C#靜態(tài)構造函數用法實例分析

    這篇文章主要介紹了C#靜態(tài)構造函數用法,以實例形式較為詳細的分析了C#靜態(tài)構造函數的用途、實現方法及使用技巧,需要的朋友可以參考下
    2015-06-06
  • C#中枚舉的特性 FlagAttribute詳解

    C#中枚舉的特性 FlagAttribute詳解

    說到FlagsAttribute,源自前幾天看到了一小段代碼,大概意思就是根據航班政策來返回哪些配送方式是否可用,根據這些是否可用來隱藏或者開啟界面的相關配送方式,不是非常明白,于是今天我們就來詳細探討下這個問題
    2018-03-03
  • C#對文件進行批量重命名或者對某單個文件進行改名的示例代碼

    C#對文件進行批量重命名或者對某單個文件進行改名的示例代碼

    這篇文章主要介紹了C#對文件進行批量重命名或者對某個單獨的文件進行改名的實現方法,文中有相關的代碼示例供大家參考,具有一定的參考價值,需要的朋友可以參考下
    2024-05-05
  • 解決Unity項目中UI腳本丟失的問題

    解決Unity項目中UI腳本丟失的問題

    這篇文章主要介紹了解決Unity項目中UI腳本丟失的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • c#基于winform制作音樂播放器

    c#基于winform制作音樂播放器

    這篇文章主要介紹了c#基于winform制作音樂播放器的方法,幫助大家更好的理解和學習使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C# 16進制與字符串、字節(jié)數組之間的轉換

    C# 16進制與字符串、字節(jié)數組之間的轉換

    在串口通訊過程中,經常要用到 16進制與字符串、字節(jié)數組之間的轉換
    2009-05-05
  • C# Nullable的使用小結

    C# Nullable的使用小結

    本文主要介紹了C# Nullable的使用小結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • C#自定義集合初始化器

    C#自定義集合初始化器

    這篇文章介紹了C#自定義集合初始化器的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • C#超市收銀系統(tǒng)設計

    C#超市收銀系統(tǒng)設計

    這篇文章主要為大家詳細介紹了C#超市收銀系統(tǒng)設計,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Unity實現背景圖片淡入淡出效果

    Unity實現背景圖片淡入淡出效果

    這篇文章主要為大家詳細介紹了Unity實現背景圖片淡入淡出,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02

最新評論

额济纳旗| 原阳县| 秦安县| 合肥市| 博爱县| 潮州市| 开平市| 仙居县| 秦皇岛市| 绥棱县| 米易县| 汝阳县| 天津市| 城口县| 仪征市| 自贡市| 崇文区| 芜湖市| 天等县| 丰台区| 宁德市| 开封市| 揭阳市| 双流县| 丰顺县| 吴旗县| 若羌县| 井陉县| 台北市| 临城县| 泽州县| 沁水县| 喀什市| 阜新| 呼和浩特市| 涿鹿县| 陵川县| 保德县| 武胜县| 乐安县| 多伦县|