欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2013年05月18日 11:52:31   作者:  
本篇文章是對使用BeginInvoke,EndInvoke異步調(diào)用委托的實(shí)現(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獲得計(jì)算結(jié)果,這時候計(jì)算結(jié)果已經(jīng)出來了,有異常的話也在這兒拋出來
                long sum = method.EndInvoke(asyncResult);
                Console.WriteLine("sum = {0}",sum);
            }
            catch (OverflowException)
            {
                Console.WriteLine("運(yùn)算溢出了");
            }
        }

        //委托方法
        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)文章

  • C#短消息提示窗口位置及窗口大小詳解

    C#短消息提示窗口位置及窗口大小詳解

    在我們的生活中無論是使用QQ,360安全衛(wèi)士等軟件的過程中,經(jīng)常會遇到從右下方的托盤處彈出一個消息提示窗,比如新聞,產(chǎn)品更新等內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于C#短消息提示窗口位置及窗口大小的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • C#中委托和事件的區(qū)別實(shí)例解析

    C#中委托和事件的區(qū)別實(shí)例解析

    這篇文章主要介紹了C#中委托和事件的區(qū)別,并分別以實(shí)例形式展示了通過委托執(zhí)行方法與通過事件執(zhí)行方法,以及相關(guān)的執(zhí)行流程與原理分析,需要的朋友可以參考下
    2014-09-09
  • 全面分析c# LINQ

    全面分析c# LINQ

    這篇文章主要介紹了c# LINQ的相關(guān)資料,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-08-08
  • C#實(shí)體對象序列化成Json并讓字段的首字母小寫的兩種解決方法

    C#實(shí)體對象序列化成Json并讓字段的首字母小寫的兩種解決方法

    這篇文章主要介紹了C#實(shí)體對象序列化成Json并讓字段的首字母小寫的兩種方法,在這兩種方法中小編比較推薦使用第二種方法,需要的朋友可以參考下
    2018-06-06
  • C#操作windows注冊表的方法

    C#操作windows注冊表的方法

    這篇文章主要介紹了C#操作windows注冊表的方法,涉及C#針對注冊表的讀取與寫入技巧,非常具有實(shí)用價值,需要的朋友可以參考下
    2015-04-04
  • Unity實(shí)現(xiàn)主角移動與攝像機(jī)跟隨

    Unity實(shí)現(xiàn)主角移動與攝像機(jī)跟隨

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)主角移動與攝像機(jī)跟隨,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • C#入?yún)⑹褂靡妙愋鸵觬ef的原因解析

    C#入?yún)⑹褂靡妙愋鸵觬ef的原因解析

    這篇文章主要介紹了C#入?yún)⑹褂靡妙愋鸵觬ef的原因解析,我們在實(shí)際開發(fā)中還是能夠碰到一些引用類型添加ref的場景,其實(shí)道理也是一樣的,就是將引用類型的棧的地址傳遞到了方法中,那么和不添加有啥區(qū)別,感興趣的朋友跟隨小編一起看看吧
    2022-11-11
  • C#實(shí)現(xiàn)讀取指定盤符硬盤序列號的方法

    C#實(shí)現(xiàn)讀取指定盤符硬盤序列號的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)讀取指定盤符硬盤序列號的方法,涉及C#針對硬件屬性的相關(guān)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-08-08
  • C#使用EF連接PGSql數(shù)據(jù)庫的完整步驟

    C#使用EF連接PGSql數(shù)據(jù)庫的完整步驟

    這篇文章主要給大家介紹了關(guān)于C#使用EF連接PGSql數(shù)據(jù)庫的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • C#的WebBrowser的操作與注意事項(xiàng)介紹

    C#的WebBrowser的操作與注意事項(xiàng)介紹

    C#的WebBrowser的操作與注意事項(xiàng)介紹,需要的朋友可以參考一下
    2013-03-03

最新評論