微信公开课小程序热门讨论「Delegate利用委托,将方法作参数传值,并且接收返回值,我该怎么写」最新回复-不用把委托传进去,委托本身就是一个类,你在类中定义委托后,把方法赋给委托,然后在CallFuncThread方法中调用委托就行了大致如下publicdelegatevoidDelegate;Delegatedelegate=methodName;publicstaticboolCallFuncThread(TimeSpantimeSpan){//一些操作完成后,开始调用委托中的方法delegate;}
internalclassProgram{publicstaticvoidMain(string[]args){intiOverTime=10000;//int.Parse(iniFile.GetString(CATCH,OVERTIME,));//读取超时时间,默认10秒=100000boolbValue=OverTimeCntrol.CallFuncThread(GetArticlePageContent,TimeSpan.FromMilliseconds(iOverTime),null,newobject[]{0,bbb});Console.ReadKey(true);}publicstaticboolGetArticlePageContent(paramsobject[]args){Thread.Sleep(1000);returntrue;}}publicclassOverTimeCntrol{//记录返回值publicstaticobjectReturnVal{get;privateset;}publicdelegateboolDelegate(object[]args);//修改委托,使之可以传入参数///summary///执行指定的方法,如果在指定的时间之内没有完成,则中止////summary///paramname=func任务过程/param///paramname=timeSpan超时时间/param///paramname=timeoutCallback如果超时,则调用该方法/param///paramname=args任务过程所需参数/param///returns是否正确执行完毕/returnspublicstaticboolCallFuncThread(Delegatefunc,TimeSpantimeSpan,ActiontimeoutCallback,paramsobject[]args){ReturnVal=null;//清空返回值。if(func==null)thrownewArgumentNullException(func);ManualResetEventresetEvent=newManualResetEvent(false);ManualResetEventwaitThreadEvent=newManualResetEvent(false);Exceptionerror=null;Threadthread=null;//将任务加到线程当中ThreadPool.QueueUserWorkItem(delegate{thread=Thread.CurrentThread;try{ReturnVal=func(args);}catch(ThreadAbortException){}catch(Exceptionex){error=ex;}resetEvent.Set();waitThreadEvent.WaitOne();//每次线程执行结束都等待后续的处理逻辑});try{boolresult=resetEvent.WaitOne(timeSpan,false);//等待任务的结束if(error!=null)//说明在执行过程中出现异常,直接抛出异常throwerror;if(!result){if(thread!=null){thread.Abort();//此时可以确保该线程没有开始运行新的任务waitThreadEvent.Set();}if(timeoutCallback!=null)timeoutCallback();}returnresult;}finally{waitThreadEvent.Set();//最后确保释放线程池线程}}} 更多有关「Delegate利用委托,将方法作参数传值,并且接收返回值,我该怎么写」的疑问请扫码关注微信公开课+小程序!了解更多
方法1:微信扫描微信公开课小程序码即可订阅热议话题「Delegate利用委托,将方法作参数传值,并且接收返回值,我该怎么写」
方法2:微信搜索微信公开课小程序名称进入,即可订阅热议话题「Delegate利用委托,将方法作参数传值,并且接收返回值,我该怎么写」
方法3:微信网页访问即速商店,长按识别微信公开课小程序码即可订阅热议话题「Delegate利用委托,将方法作参数传值,并且接收返回值,我该怎么写」
微信公开课小程序热议话题「Delegate利用委托,将方法作参数传值,并且接收返回值,我该怎么写」由微信公开课原创摘录于微信小程序商店shop.jisuapp.cn,转载请注明出处。
微信公开课热议话题「Delegate利用委托,将方法作参数传值,并且接收返回值,我该怎么写」由微信公开课开发者向微信用户提供,并对本服务内容、数据资料及其运营行为等真实性、合法性及有效性承担全部责任。