位置: 编程技术 - 正文

ThreadPool.RegisterWaitForSingleObject 设置等待超时事件

编辑:rootadmin

推荐整理分享ThreadPool.RegisterWaitForSingleObject 设置等待超时事件,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

在做文件下载功能时,经常出现网络状况不好而导致文件下载失败的情况,但是这种情况下又不能捕获到异常或者Timeout 回调,如果放之自流,文件将长时间处于下载状态。

基于以上状况引入超时,在网络状态不好的情况下,设置超时时间,例如3秒,然后3秒之后如果没有接收到数据,就断开Socket再重新连接,断点续传。

我们使用

来执行超时设置。

ThreadPool.RegisterWaitForSingleObject 设置等待超时事件

public static RegisteredWaitHandle RegisterWaitForSingleObject( WaitHandle waitObject, WaitOrTimerCallback callBack, Object state, int millisecondsTimeOutInterval, //间隔时间 bool executeOnlyOnce //false则循环执行,和Timer类&#;)

这个方法的做用是向线程池添加一个可以定时执行的方法,第四个参数millisecondsTimeOutInterval 就是用来设置间隔执行的时间,但是这里第五个参数executeOnlyOnce 会对第四个参数起作用,当它为true时,表示任务仅会执行一次,就是说它不会,像Timer一样,每隔一定时间执行一次,这个功能的话用Timer控件也可以实现

该方法还在此基础上提供了基于信号量来触发执行任务。

信号量也叫开关量,故名思议,它只有两种状态,不是true就是false,

WaitHandle就是这类开关量的基础类,继承它的类有Mutex,ManualResetEvent,AutoResetEvent,一般我们使用后两个

上一点代码

每隔3秒输出 "objlll"

Unity Enemy behaviour usingUnityEngine;usingSystem.Collections;publicclassenemyBehaviour:MonoBehaviour{//enemythatmovestoplayerwhencloseenoughpublicfloatspeed=6f;publicTransformplayer;publicfloatenemySight=f;publicAudi

Unity KillCount usingUnityEngine;usingSystem.Collections;publicclassKillCountMult:MonoBehaviour{publicGUITextkText;publicstaticintkills1;publicstaticintkills2;publicstaticboolplayerKilled;publicstaticboolplayer2Kille

用Unity开发移动平台的游戏 不可避免的会遇到屏幕分辨率 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,【狗刨学习网】unity极致学

本文链接地址:https://www.jiuchutong.com/biancheng/382621.html 转载请保留说明!

上一篇:关于 Unity3D 持久化数据存储的笔记 之 PlayerPrefs(unity持久化存储)

下一篇:Unity Enemy behaviour

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络