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

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

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

        //委托方法
        static long CalcSum(long topLimit)
        {
            //委托在另一個(gè)線程中開始執(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#短消息提示窗口位置及窗口大小詳解

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

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

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

    全面分析c# LINQ

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

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

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

    C#操作windows注冊(cè)表的方法

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論