C# 关于线程异步调用的基础问题...

问题在代码里:

using System;
using System.Threading;
using System;
using System.Threading;

namespace ThreadPoolApplication
{
    class Program
    {
    
        static int count = 5;
        static void Main(string[] args)
        {
            Test t=new Test ();
            ReStringMths r=new ReStringMths (t.Exec);
            r.BeginInvoke(new System.AsyncCallback((IResult)=>{r.EndInvoke(IResult);Console.WriteLine("类名为{0}的异步方法{1}执行完毕!",IResult.AsyncState.ToString(),IResult.AsyncState.GetType().GetMethods()[0].Name);}),t);
            //问题1:请问r.EndInvoke(IResult);这个IResult传进去干嘛用的?用于什么情况下?
//问题2:有什么办法可以获取t.Exec的返回值?

//问题3:不写r.EndInvoke(IResult);同样可以得到正确结果...但是为什么要有r.EndInvoke方法呢?
            System.Console.ReadKey();
        }
    }

    delegate string ReStringMths();
        class Test
        {
            public string Exec()
            {
                System.Console.WriteLine("Start..."); Thread.Sleep(5000); System.Console.WriteLine("End..."); return "hello";
            }
            
        }
}

新手..问题多多..麻烦各位了!

www说
浏览 401回答 2
2回答

叮当猫咪

请学习下 IAsyncResult 接口。
打开App,查看更多内容
随时随地看视频慕课网APP