下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
POCOC++库学习和分析--任务任务的定义任务虽然在Poco::Foundation库的目录结构中被单独划出,其实也可以被看成线程的应用,放在线程章节。首先来看一下Poco中对于任务的描述:task主要应用在GUI和Seerver程序中,用于追踪后台线程的进度。应用Poco任务时,需要类Poco::Task和类Poco::TaskManager配合使用。其中类Poco::Task继承自Poco::Runnable,它提供了接口可以便利的报告线程进度。Poco::TaskManager则对Poco::Task进行管理。•为了完成取消和上报线程进度的工作:使用者必须从Poco::Task创建一个子类并重写runTask()函数为了完成进度上报的功能,在子类的runTask()函数中,必须周期的调用setProgress()函数去上报信息为了能够在任务运行时终止任务,必须在子类的runTask()函数中,周期性的调用isCancelled()或者sleep()函数,去检查是否有任务停止请求如果isCancelled()或者sleep()返回真,runTask()返回。•Poco::TaskManager通过使用Poco::NotificationCenter去通知所有需要接受任务消息的对象从上面描述可以看出,Poco中Task的功能就是能够自动汇报线程运行进度。任务用例Task的应用非常简单,下面是其一个使用例子:[cpp]viewplaincopy#include"Poco/Task.h"#include"Poco/TaskManager.h"#include"Poco/TaskNotification.h"#include"Poco/Observer.h"5.usingPoco::Observer;classSampleTask:publicPoco::Task{9.public:6.SampleTask(6.voidrunTask(){for(inti=0;i<100;++i)
{setProgress(float(i)/100);//reportprogressif(sleep(1000))break;}}};classProgressHandlerpublic:voidonProgress(Poco::TaskProgressNotification*pNf){std::cout<<pNf->task()->name()<<"progress:"<<pNf->progress()<<std::endl;pNf->release();}voidonFinished(Poco::TaskFinishedNotification*pNf){std::cout<<pNf->task()->name()<<"finished."<<std::endl;pNf->release();}};intmain(intargc,char**argv){Poco::TaskManagertm;ProgressHandlerpm;tm.addObserver(Observer<ProgressHandler,Poco::TaskProgressNotification>(pm,&ProgressHandler::onProgress));tm.addObserver(Observer<ProgressHandler,Poco::TaskFinishedNotification>(pm,&ProgressHandler::onFinished));tm.start(newSampleTask("Task1"));//tmtakesownershiptm.start(newSampleTask("Task2"));tm.joinAll();return0;}3.Task类图6.57.最后给出Poco中Task的类图。r;m*U|r■“-It| raJo-k+ti!4.liM—訐去:it生霍山■iirEUm■ViiillIniiT肿k>[l 11.r”"柄’I.“Ill时.n|nci中rft-r;m*U|r■“-It| raJo-k+ti!4.liM—訐去:it生霍山■iirEUm■ViiillIniiT肿k>[l 11.r”"柄’I.“Ill时.n|nci中rft-二輛H:vaftttA_h吭咕U±I■tidlflj*c!I-fliphnii*-^■rplcnnuil“"IL'EnirCii-wi■fI3fc'i'•''LllliliJ4-ii-::『4filpriahSH-HMM1:lirvinresH:E血订lLMU-'LllEvC^llEhL'IIIEiLou-F
府生柑iffl'A
匚匸ejlT-fsinwh'rMK.SHMIIMiT.⑶KIMI*-T凹「MFUW-TV?«■niiwli <M#T上l|ra^aiJi.limCl\|ILrj丨rniBL^H).亍nW:T氷lialldi\ :hr<ilptrmiLl!wsiris*ru【i『iiH■门rTuFiUlll)wiJ|HIiv|t(E|Itil-1:>^in'itf:Iril1;|g|t4viJhr«L|jijfai[iii|irn£rHiM2Jhriii).inlntfnkLkjLLJtiilBLbUliiill*j^I.竝jlIiIIlu'jJul!*lfe.iL-llMlHrl[dlJ|J^Ik.EImsLILUuuI"E*IWuLJtu-L-ibikEiI! :f』」ilLi5肛3•K-1-CI^IRtrlnFl-Rr.'-1n-^fni-alf-r-\r-T-:低他wiE^rhit~iJ-TtJCrfitiiiiinafv3rf-rriirunitimj<•m»EtirTin^iUhnrfl=4nnfiji.砸QBOMlfi!l.碑也一啊帕卄皿1应和1站耳尾型密出擔一卜MLffll瞇岭ft审m6卑即严电*rJr-rb^k.ili-rr亠栖斥車他・-”iilglrBSTLg诵JItHtcnfMH-_nc:*Mitl1icn:HRTRniin「W1FiuLMul:叮*■"1M」ILuJI-11«■ludilLuJifriIIliliHii![Ilt-riulFiMi.1.1FuLJiTLILlJjxldh-k '¥iiill;Mill-jion^i1!i>-Hti^iiMidiliwriiw-Lini^MPTMr'r-「rr^rl )初litHiurvwLcn出片円亍町rniu|电爲逐:山)1inlii-I^LGPlLInpNI:右・ll卜罔w?|4手IU・h野*ItIIi|lIlTviiik Tjisk"l.FllhISln-kFl'iijl-L-ri^^|i>lilAAft:7mk»PII|||>>UII■»:"-uil^:4!hldLhxMjEr«li«fl(l!nciliikIi:Tnr^aI1i^aldLuBkFtfEidBhiKCinpldHh:TjesA-vtiidluild^lk^1ibuT^ii加inii陌i £的工*;1:泌応jiltkmpr■- 匕帀111气人1什・川・产Ahj^ieil*:^Aiilk»HrYiirp4111id'is-arhwvmiiini-氟审・E■rwnnB^HIi-iwrvvbIi|iirlihwri-rati.lxib>卜|*|e--tl^iHJim.y^ll'iiiii!>iiF11i'.ii'iJiri;;V.-'llBH^lHrinnFiOIkN»iIirDunllMmrrwuO:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026江西萍建工程建设有限公司招聘11人备考题库带答案详解(完整版)
- 2026海南省烟草专卖局(公司)招聘34人备考题库及一套完整答案详解
- 2026青海海北州海晏县三角城镇卫生院招聘B超医生1人备考题库含完整答案详解【易错题】
- 2026湖南永州市双牌县融媒体中心(双牌县广播电视台)招聘1人备考题库带答案详解(培优b卷)
- 2025年一级造价师《建设工程技术与计量(安装)》过关检测试卷及答案
- 2026海南省烟草专卖局(公司)招聘34人备考题库及参考答案详解【a卷】
- 修改支付方式确认函3篇范文
- 2026浙江丽水市松阳县国盛人力资源有限公司招聘专职消防员3人备考题库附完整答案详解(名师系列)
- 2026贵州江山作物科技有限公司社会招聘12人备考题库【原创题】附答案详解
- 公司财务公开制度
- 高三临界生家长会课件
- 2025北京市体检人群抽样健康报告
- 体育跨学科培训:融合与创新
- 住院老年患者肌少症合并认知功能障碍:现状剖析与预后探究
- 次氯酸钠安全评价报告1
- 2024-2025学年高一物理下学期期末复习:圆周运动(讲义)
- 济南市清源水务集团有限公司李庄水源地水源井及配套设备设施迁建工程环评资料环境影响
- 低空经济八大应用场景与实践案例解析方案
- 国家电投集团招聘考试试题及答案
- T/SHPTA 028-2022硬聚氯乙烯用钙锌复合热稳定剂
- 增强现实引擎开发(微课版)教学教案
评论
0/150
提交评论