1. using Quartz;
  2. using Quartz.Impl;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Reflection;
  7. using System.Text;
  8. using System.Threading;
  9. using System.Threading.Tasks;
  10.  
  11. namespace QuartZ
  12. {
  13. class Program
  14. {
  15. static void Main(string[] args)
  16. {
  17.  
  18. //加载程序集(dll文件地址),使用Assembly类
  19. Assembly assembly = Assembly.LoadFile(@"D:\ConsoleSample\QuartZ\ClassLib\bin\Debug\ClassLib.dll");
  20.  
  21. //获取类型,参数(名称空间+类)
  22. Type type = assembly.GetType("ClassLib.Sample");
  23.  
  24. //创建该对象的实例,object类型,参数(名称空间+类)
  25. object instance = assembly.CreateInstance("ClassLib.Sample");
  26.  
  27. //设置Show_Str方法中的参数类型,Type[]类型;如有多个参数可以追加多个
  28. Type[] params_type = new Type[];
  29. params_type[] = Type.GetType("System.String");
  30. //设置Show_Str方法中的参数值;如有多个参数可以追加多个
  31. Object[] params_obj = new Object[];
  32. params_obj[] = "你好";
  33.  
  34. //执行Show_Str方法
  35. object value = type.GetMethod("Show_Str", params_type).Invoke(instance, params_obj);
  36. Console.WriteLine(value);
  37.  
  38. //Nuget下载QuartZ
  39. Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  40. //首先创建一个作业调度池
  41. ISchedulerFactory schedf = new StdSchedulerFactory();
  42. IScheduler sched = schedf.GetScheduler();
  43. //创建出来一个具体的作业
  44. IJobDetail job = JobBuilder.Create<JobDemo>().Build();
  45. //NextGivenSecondDate:如果第一个参数为null 第二个参数则表明当前时间往后推迟2秒的时间点。
  46. DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddSeconds(), );
  47. DateTimeOffset endTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddHours(), );
  48. //创建并配置一个触发器
  49. //每三秒执行一次,一共执行100次,开始执行时间设定在当前时间,
  50. //结束时间我设定在2小时后;超过两小时不管有没有执行100次,都不执行了。
  51.  
  52. ISimpleTrigger trigger = (ISimpleTrigger)TriggerBuilder.Create().StartAt(startTime).EndAt(endTime)
  53. .WithSimpleSchedule(x => x.WithIntervalInSeconds().WithRepeatCount())
  54. .Build();
  55. //加入作业调度池中
  56. sched.ScheduleJob(job, trigger);
  57. //开始运行
  58. sched.Start();
  59. Console.ReadKey();
  60. }
  61. }
  62.  
  63. public class JobDemo : IJob
  64. {
  65. /// <summary>
  66. /// 这里是作业调度每次定时执行方法
  67. /// </summary>
  68. /// <param name="context"></param>
  69. public void Execute(IJobExecutionContext context)
  70. {
  71. Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  72. }
  73. }
  74. }
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ClassLib
  8. {
  9. class Sample
  10. {
  11. public string Show_Str(string str)
  12. {
  13. if (string.IsNullOrEmpty(str))
  14. {
  15. return "无数据";
  16. }
  17. else
  18. {
  19. return "你传入的参数是:" + str;
  20. }
  21. }
  22. }
  23. }

C#反射动态调用dll中的方法及使用QuartZ.net实现作业调度的更多相关文章

  1. C#反射动态调用dll中的方法,并返回结果(转)

    反射的作用是动态的加载某个dll(程序集),并执行该程序集中的某个方法,并返回结果:当然也可以给该方法传递参数 namespace assembly_name { public class assem ...

  2. C#反射动态调用dll中的方法

    //加载程序集(dll文件地址),使用Assembly类 Assembly assembly = Assembly.LoadFile(AppDomain.CurrentDomain.BaseDirec ...

  3. 纯静态界面中(html)中通过js调用dll中的方法从数据库中读取数据

    最近接到一个离职员工的任务,一个搭好框架的ERP系统,看了两天,说一下看到的东西,整个项目目录中我没发现一个.aspx后缀的文件,全是静态HTML文件,之后发现他用的jquery简直看的头疼,不过大概 ...

  4. C#利用反射动态调用DLL并返回结果,和获取程序集的信息

    反射的基本概念: .Net Framework 中提供了反射机制,可以再加载程序运行时,动态获取和加载程序集,并且可以获取到程序集的信息 创建Assembly和Entity两个程序集,在Assembl ...

  5. 利用C#的反射机制动态调用DLL类库

    最近由于业务要求,需要动态调用DLL类库,所以研究了一下,感觉还好也不太难,今天就把自己理解的写了一个小例子(已经通过VS2005跑通),供大家一起研究和探讨,有理解不当的地方还请高手们多多指正,谢谢 ...

  6. 学习反射例子,调用DLL窗体及方法

    创建类库,并添加新窗体,加入以下方法 public static string setText(string str) { return str; } 编译后把生成的DLL文件放入新项目的bin目录, ...

  7. C#程序实现动态调用DLL的研究(转)

    摘 要:在<csdn开发高手>2004年第03期中的<化功大法——将DLL嵌入EXE>一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资 ...

  8. C#程序实现动态调用DLL的研究[转]

    摘   要: 在< csdn 开发高手> 2004 年第 03 期中的<化功大法——将 DLL 嵌入 EXE >一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在 ...

  9. C#程序实现动态调用DLL的研究

    摘 要:在<csdn开发高手>2004年第03期中的<化功大法——将DLL嵌入EXE>一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资 ...

随机推荐

  1. javascript中检测一个变量的类型

    /** * 怎么检测一个变量的类型? * 在js中检测对象类型主要有三种:typeof, instanceof, constructor, 这几种都可以检测对象的类型. * 另外还可以适应jQuery ...

  2. html的body内标签之超链接

    一,先来个简单的练练手,target="_blank" 的作用是在新的tab中打开页面.href 是超链接的意思. <!DOCTYPE html> <html l ...

  3. 配置ssh

    1. 实现只允许特定用户ssh登录   1.1. 直接配置ssh来实现 编辑/etc/ssh/sshd_config,在末尾添加如下一行 AllowUsers user1 user2 user3 然后 ...

  4. 【刷题】BZOJ 4827 [Hnoi2017]礼物

    Description 我的室友最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手 环,一个留给自己,一个送给她.每个手环上各有 n 个装饰物,并且每个装饰物都有一定的亮度.但是在 ...

  5. LOJ6276:果树——题解

    https://loj.ac/problem/6276#submit_code NiroBC 姐姐是个活泼的少女,她十分喜欢爬树,而她家门口正好有一棵果树,正好满足了她爬树的需求.这颗果树有N 个节点 ...

  6. lighttpd - 配置文件

    转载其他网站,收藏查看! 配置文件lighttpd.conf参数详细说明的链接和选译 发表于 2010年12月22日 http://redmine.lighttpd.net/projects/ligh ...

  7. jQuery考试

    No1: 分析:首先A答案是正确的jQuery中删除元素的方法有a,c,d所以排除B,另外c是清空,d虽然能删除但是不能删除元素所绑定的事件等等. No2: 分析:A是正确的通过get(index)的 ...

  8. bzoj2064: 分裂(集合DP)

    ......咸鱼了将近一个月,因为沉迷ingress作业越来越多一直没时间搞OI呜呜呜 题目大意:有一个初始集合(n个元素)和一个目标集合(m个元素)(1<=n,m<=10),两个操作   ...

  9. JS判断当前DOM树是否加载完毕

    /** * @function Monitor whether the document tree is loaded. * @param fn */function domReady(fn) { i ...

  10. All you need to know about sorting in Postgres

    按:之前看pg的执行计划,多次看到不同的排序方式,但不知何意.偶遇此篇讲解pg执行计划三种排序方式,备忘一下. Sorting Sorting is one of the most fundament ...