为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

www说 2018-12-06 14:14:26
问题在代码里: 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"; } } } 新手..问题多多..麻烦各位了!
查看完整描述

2 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

请学习下 IAsyncResult 接口。

查看完整回答
反对 回复 2019-01-21
  • 2 回答
  • 0 关注
  • 397 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信