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

基于使用BeginInvoke,EndInvoke異步調(diào)用委托的實現(xiàn)代碼

 更新時間:2013年05月18日 11:52:31   作者:  
本篇文章是對使用BeginInvoke,EndInvoke異步調(diào)用委托的實現(xiàn)代碼進(jìn)行了分析介紹,需要的朋友參考下
復(fù)制代碼 代碼如下:

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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Main ThreadId = " + Thread.CurrentThread.ManagedThreadId);
            //給委托賦值
            Func<long, long> delegateMethod = new Func<long, long>(CalcSum);
            //異步執(zhí)行委托,這里把委托本身作為asyncState對象傳進(jìn)去,在回調(diào)函數(shù)中需要使用委托的EndInvoke來獲得結(jié)果
            delegateMethod.BeginInvoke(200, DoneCallback, delegateMethod);
            //異步執(zhí)行委托,拋出異常
            delegateMethod.BeginInvoke(10000000000, DoneCallback, delegateMethod);
            Console.ReadLine();
        }

        //委托回調(diào)函數(shù)
        static void DoneCallback(IAsyncResult asyncResult)
        {
            //到這兒委托已經(jīng)在異步線程中執(zhí)行完畢
            Console.WriteLine("DoneCallback ThreadId = " + Thread.CurrentThread.ManagedThreadId);

            Func<long, long> method = (Func<long, long>)asyncResult.AsyncState;
            //委托執(zhí)行的異常會在EndInvoke時拋出來
            try {
                //使用BeginInvoke時傳入委托的EndInvoke獲得計算結(jié)果,這時候計算結(jié)果已經(jīng)出來了,有異常的話也在這兒拋出來
                long sum = method.EndInvoke(asyncResult);
                Console.WriteLine("sum = {0}",sum);
            }
            catch (OverflowException)
            {
                Console.WriteLine("運算溢出了");
            }
        }

        //委托方法
        static long CalcSum(long topLimit)
        {
            //委托在另一個線程中開始執(zhí)行
            Console.WriteLine("Calc ThreadId = " + Thread.CurrentThread.ManagedThreadId);
            checked
            {
                long result = 0;
                for (long i = 0; i < topLimit; i++)
                {
                    result += i;
                }
                return result;
            }
        }
    }

}

相關(guān)文章

  • 詳解二維碼生成工廠

    詳解二維碼生成工廠

    本篇文章主要分享的是3個免費的二維碼接口的對接代碼和測試得出的注意點及區(qū)別。具有很好的參考價值,需要的朋友一起來看下吧
    2016-12-12
  • C#編程實現(xiàn)簡易圖片瀏覽器的方法

    C#編程實現(xiàn)簡易圖片瀏覽器的方法

    這篇文章主要介紹了C#編程實現(xiàn)簡易圖片瀏覽器的方法,涉及C#基于WinForm操作圖片實現(xiàn)預(yù)覽功能的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • C#實現(xiàn)XML序列化與反序列化

    C#實現(xiàn)XML序列化與反序列化

    這篇文章介紹了C#實現(xiàn)XML序列化與反序列化的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#面向?qū)ο蟮?3種設(shè)計模式介紹

    C#面向?qū)ο蟮?3種設(shè)計模式介紹

    這篇文章介紹了C#面向?qū)ο蟮?3種設(shè)計模式,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • C#中獲取文件大小問題

    C#中獲取文件大小問題

    這篇文章主要介紹了C#中獲取文件大小問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C#緩存之SqlCacheDependency用法實例總結(jié)

    C#緩存之SqlCacheDependency用法實例總結(jié)

    這篇文章主要介紹了C#緩存之SqlCacheDependency用法,在C#程序設(shè)計中有一定的實用價值,需要的朋友可以參考下
    2014-08-08
  • C# PictureBox圖片控件實現(xiàn)圖片交換

    C# PictureBox圖片控件實現(xiàn)圖片交換

    在c#中可以使用PictureBox控件來呈現(xiàn)圖像,本文主要介紹了C# PictureBox實現(xiàn)圖片交換,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C#使用MD5算法對密碼進(jìn)行加密的示例代碼

    C#使用MD5算法對密碼進(jìn)行加密的示例代碼

    MD5(Message Digest Algorithm 5)是一種被廣泛使用的“消息-摘要算法”,“消息-摘要算法”實際上就是一個單項散列函數(shù),數(shù)據(jù)塊經(jīng)過單向散列函數(shù)得到一個固定長度的散列值,本文給大家介紹了C#使用MD5算法對密碼進(jìn)行加密,需要的朋友可以參考下
    2024-03-03
  • Unity AssetBundle打包工具示例詳解

    Unity AssetBundle打包工具示例詳解

    這篇文章主要介紹了Unity AssetBundle打包工具,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • C#的FileInfo類實現(xiàn)文件操作實例

    C#的FileInfo類實現(xiàn)文件操作實例

    這篇文章主要介紹了C#的FileInfo類實現(xiàn)文件操作實例,比較實用的功能,需要的朋友可以參考下
    2014-07-07

最新評論

山阳县| 吉安市| 文成县| 宁武县| 平定县| 定州市| 黄石市| 余姚市| 太仆寺旗| 商洛市| 射阳县| 思南县| 郯城县| 太仆寺旗| 龙井市| 连州市| 武义县| 长兴县| 汤阴县| 永丰县| 黄石市| 昌平区| 萨迦县| 余庆县| 奈曼旗| 千阳县| 加查县| 萨迦县| 鲜城| 静宁县| 洱源县| 宝兴县| 大城县| 墨玉县| 闸北区| 泰宁县| 那曲县| 常德市| 水城县| 呼伦贝尔市| 德钦县|