欢迎来到天天文库
浏览记录
ID:35366881
大小:197.86 KB
页数:11页
时间:2019-03-24
《使用c#创建计划任务(howtocreateataskschedulerusec#)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、本文主要讲解了如何使用C#来创建windows计划任务。 · 需求:在不定时间段运行多个后台程序(winfrom,wpf,console,等等)用于更新数据。· 问题:为什么要使用计划任务,而不直接在程序中使用一个计时器来出发呢?· 答:最明显的一点,使用计时器程序一直在后台运行着,但需求中只需要一天运行一次,或一个月运行一次。一直后台跑着计时这不白浪费CPU资源么。· 解决方案:·使用windows自带的计划任务在控制面板中可以看到,手动新建计划任务。·使用微软自带的类库TaskScheduler("c:windowssystem32taskachd.dll")来创建·使用Proc
2、ess.Star()dos命令来创建计划任务·dos命令运行scheduler.exe最简单实例:schtasks/create/scminute/mo1/tnMyTask/trcalc.exe/st09:00 //从9点开始没隔一分钟运行一次记事本具体帮助文档可在cmd命令框输入:>schtasks/? >schtasks/create/? >schtasks/delete/?>schtasks/query/?>schtasks/change/?·还可参照:https://msdn.microsoft.com/en-us/library/windows/desktop/bb73635
3、7%28v=vs.85%29.aspx 解决方案开始:這里选用微软自带的类库TaskScheduler,下面是封装过的代码,包含了删除计划任务、判断计划任务是否存在、获取所有的计划任务、创建计划任务。(具体看详细注释): 获取计划任务的列表: //////getalltasks///publicstaticIRegisteredTaskCollectionGetAllTasks(){TaskSchedulerClassts=newTaskSchedulerClass();ts.Connect(null,null,null,null);ITaskFold
4、erfolder=ts.GetFolder("\");IRegisteredTaskCollectiontasks_exists=folder.GetTasks(1);returntasks_exists;}ViewCode 判断计划任务是否存在://////checktaskisexists/////////publicstaticboolIsExists(stringtaskName){varisExists=false;IRegisteredTas
5、kCollectiontasks_exists=GetAllTasks();for(inti=1;i<=tasks_exists.Count;i++){IRegisteredTaskt=tasks_exists[i];if(t.Name.Equals(taskName)){isExists=true;break;}}returnisExists;}ViewCode 删除计划任务://////deletetask//////privatestaticvoidDeleteTask(stringta
6、skName){TaskSchedulerClassts=newTaskSchedulerClass();ts.Connect(null,null,null,null);ITaskFolderfolder=ts.GetFolder("\");folder.DeleteTask(taskName,0);}ViewCode 创建计划任务://////createscheduler////////////
7、////////////publicstatic_TASK_STATECreateTaskScheduler(stringcreator,stringtaskName,str
此文档下载收益归作者所有