<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    用回調(diào)方法檢索數(shù)據(jù)
    下面的示例演示了一個(gè)從線程中檢索數(shù)據(jù)的回調(diào)方法。包含數(shù)據(jù)和線程方法的類(lèi)的構(gòu)造函數(shù)也接受代表回調(diào)方法的委托;
    在線程方法結(jié)束前,它調(diào)用該回調(diào)委托。
    */
    using System;
    using System.Threading;

    //被實(shí)例化的類(lèi),用于傳遞參數(shù)進(jìn)行操作
    public class ThreadWithState 
    {
        
    private string boilerplate;
        
    private int value;
        
    //定義一個(gè)回調(diào)函數(shù)
        private ExampleCallback callback;

        
    //接收線程傳遞的參數(shù)
        public ThreadWithState(string text, int number, ExampleCallback callbackDelegate) 
        
    {
            boilerplate 
    = text;
            value 
    = number;
            callback 
    = callbackDelegate;
        }


        
    public void ThreadProc() 
        
    {
            Console.WriteLine(boilerplate, value);
            
    //判斷是否執(zhí)行回調(diào)函數(shù)、并把參數(shù)傳遞給回調(diào)函數(shù)
            if (callback != null)
                callback(
    1);
        }

    }


    //聲明一個(gè)回調(diào)函數(shù):注意傳遞的參數(shù)要與Example類(lèi)中的函數(shù)參數(shù)類(lèi)型一致
    public delegate void ExampleCallback(int lineCount);

    //事例主類(lèi)
    public class Example 
    {
        
    public static void Main() 
        
    {
            
    //實(shí)例化ThreadWithState,并傳遞參數(shù),注意:new ExampleCallback(ResultCallback)的命名空間引用,及其傳遞的參數(shù)(ResultCallback函數(shù))
            ThreadWithState tws = new ThreadWithState("This number {0}."42new ExampleCallback(ResultCallback));

            Thread t 
    = new Thread(new ThreadStart(tws.ThreadProc));
            t.Start();
            Console.WriteLine(
    "線程開(kāi)始執(zhí)行");
            
    //此為判斷線程是否執(zhí)行結(jié)束,但不建議阻塞線程,這樣線程就會(huì)等待完成后再進(jìn)行其他操作
            
    //可利用:t.IsAlive是否處于執(zhí)行狀態(tài)來(lái)判斷線程
            t.Join();
            Console.WriteLine(
    "線程執(zhí)行結(jié)束");  
        }


        
    //回調(diào)處理函數(shù),應(yīng)與ExampleCallback的參數(shù)類(lèi)型應(yīng)一致
        public static void ResultCallback(int lineCount) 
        
    {
            Console.WriteLine(
    "printed {0} lines.", lineCount);  
        }

    }



    /*向線程傳遞數(shù)據(jù)
    ThreadStart 委托既沒(méi)有參數(shù)也沒(méi)有返回值。這意味著不可以使用需要參數(shù)的方法啟動(dòng)線程,或從方法中獲得返回值。 

    為向線程傳遞數(shù)據(jù),需要?jiǎng)?chuàng)建一個(gè)用來(lái)保持?jǐn)?shù)據(jù)和線程方法的對(duì)象,如下面的兩個(gè)代碼示例所示。 
    為檢索線程方法的結(jié)果,您可以使用回調(diào)方法,如第二個(gè)代碼示例中所示。 
    */

    using System;
    using System.Threading;

    //被實(shí)例化的類(lèi),用于傳遞參數(shù)進(jìn)行操作
    public class ThreadWithState 
    {
        
    private string boilerplate;
        
    private int value;

        
    public ThreadWithState(string text, int number) 
        
    {
            boilerplate 
    = text;
            value 
    = number;
        }

               
        
    public void ThreadProc() 
        
    {
            Console.WriteLine(boilerplate, value); 
        }

    }


    //創(chuàng)建線程調(diào)用ThreadWithState
    public class Example 
    {
        
    public static void Main() 
        
    {
            
    //實(shí)例化類(lèi)ThreadWithState,利用構(gòu)造函數(shù)向線程傳遞參數(shù)
            ThreadWithState tws = new ThreadWithState("This number {0}."42);
            
    //創(chuàng)建線程并執(zhí)行ThreadWithState類(lèi)中的ThreadProc函數(shù)
            Thread t = new Thread(new ThreadStart(tws.ThreadProc));
            t.Start();
            Console.WriteLine(
    "線程開(kāi)始執(zhí)行");
            
    //此為判斷線程是否執(zhí)行結(jié)束,但不建議阻塞線程,這樣線程就會(huì)等待完成后再進(jìn)行其他操作
            
    //可利用:t.IsAlive是否處于執(zhí)行狀態(tài)來(lái)判斷線程
            t.Join();
            Console.WriteLine(
    "線程執(zhí)行結(jié)束");  
        }

    }

    文章來(lái)源:http://www.cnblogs.com/wangdetian168/archive/2008/12/21/1359255.html
    posted on 2010-10-11 09:28 sanmao 閱讀(282) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    常用鏈接

    留言簿(5)

    隨筆分類(lèi)

    隨筆檔案

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 色噜噜综合亚洲av中文无码| 亚洲国产中文在线视频| 久久中文字幕免费视频| 亚洲av日韩av综合| 亚洲AV无码一区二三区 | 久久亚洲精品无码aⅴ大香| 国产四虎免费精品视频| 午夜在线亚洲男人午在线| 亚洲av无码一区二区三区不卡| 国产成人免费网站| 一级做a爱过程免费视频高清| 亚洲第一区视频在线观看| 国产jizzjizz视频全部免费| 可以免费观看的毛片| 日韩国产精品亚洲а∨天堂免| 国产亚洲综合久久系列| 麻豆国产VA免费精品高清在线| 男人天堂免费视频| 亚洲精品成a人在线观看☆| 亚洲AV综合色区无码一区爱AV| 免费无码又爽又刺激毛片| 污污网站18禁在线永久免费观看| 亚洲色大成网站www永久网站| 国产成人亚洲综合无码精品| 日本不卡视频免费| 亚洲成人免费网址| 国产午夜不卡AV免费| 亚洲AV无码一区二区三区电影| 亚洲AV乱码久久精品蜜桃| www.亚洲精品.com| 最近免费中文字幕大全| 一级毛片在线免费看| 国产伦精品一区二区免费| 99亚洲乱人伦aⅴ精品| 亚洲国产成a人v在线| 日产亚洲一区二区三区| 久久久久亚洲AV成人网人人软件| 美女被免费视频网站a国产 | 国产男女猛烈无遮挡免费视频 | 伊人免费在线观看高清版| 亚洲av成人一区二区三区观看在线|