using Quartz;
using Quartz.Impl;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Threading.Tasks; namespace QuartZ
{
class Program
{
static void Main(string[] args)
{ //加载程序集(dll文件地址),使用Assembly类
Assembly assembly = Assembly.LoadFile(@"D:\ConsoleSample\QuartZ\ClassLib\bin\Debug\ClassLib.dll"); //获取类型,参数(名称空间+类)
Type type = assembly.GetType("ClassLib.Sample"); //创建该对象的实例,object类型,参数(名称空间+类)
object instance = assembly.CreateInstance("ClassLib.Sample"); //设置Show_Str方法中的参数类型,Type[]类型;如有多个参数可以追加多个
Type[] params_type = new Type[];
params_type[] = Type.GetType("System.String");
//设置Show_Str方法中的参数值;如有多个参数可以追加多个
Object[] params_obj = new Object[];
params_obj[] = "你好"; //执行Show_Str方法
object value = type.GetMethod("Show_Str", params_type).Invoke(instance, params_obj);
Console.WriteLine(value); //Nuget下载QuartZ
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
//首先创建一个作业调度池
ISchedulerFactory schedf = new StdSchedulerFactory();
IScheduler sched = schedf.GetScheduler();
//创建出来一个具体的作业
IJobDetail job = JobBuilder.Create<JobDemo>().Build();
//NextGivenSecondDate:如果第一个参数为null 第二个参数则表明当前时间往后推迟2秒的时间点。
DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddSeconds(), );
DateTimeOffset endTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddHours(), );
//创建并配置一个触发器
//每三秒执行一次,一共执行100次,开始执行时间设定在当前时间,
//结束时间我设定在2小时后;超过两小时不管有没有执行100次,都不执行了。 ISimpleTrigger trigger = (ISimpleTrigger)TriggerBuilder.Create().StartAt(startTime).EndAt(endTime)
.WithSimpleSchedule(x => x.WithIntervalInSeconds().WithRepeatCount())
.Build();
//加入作业调度池中
sched.ScheduleJob(job, trigger);
//开始运行
sched.Start();
Console.ReadKey();
}
} public class JobDemo : IJob
{
/// <summary>
/// 这里是作业调度每次定时执行方法
/// </summary>
/// <param name="context"></param>
public void Execute(IJobExecutionContext context)
{
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ClassLib
{
class Sample
{
public string Show_Str(string str)
{
if (string.IsNullOrEmpty(str))
{
return "无数据";
}
else
{
return "你传入的参数是:" + str;
}
}
}
}

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. Django 2.0 学习(11):Django setuptools

    应用打包 当前状态的Python包与各种工具有点儿混乱,本结我们将学习使用setuptools来构建应用包.该工具是强烈推荐使用的打包工具,之后我们也会使用pip去安装和卸载它. Python打包指的 ...

  2. bzoj 1221: [HNOI2001] 软件开发 (网络流)

    注意说如果直接从每天的新的连向旧的,那整个图的最大流还是不变,答案就一直会是Σni*f type arr=record toward,next,cap,cost:longint; end; const ...

  3. 洛谷3805:【模板】manacher算法——题解

    https://www.luogu.org/problemnew/show/P3805 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 字符串长度为n 板子题, ...

  4. CC TSUBSTR:Substrings on a Tree——题解

    https://www.codechef.com/problems/TSUBSTR https://vjudge.net/problem/CodeChef-TSUBSTR 给一棵点权为字母的树,你只能 ...

  5. 使用py-faster-rcnn训练VOC2007数据集时遇到问题

    使用py-faster-rcnn训练VOC2007数据集时遇到如下问题: 1. KeyError: 'chair' File "/home/sai/py-faster-rcnn/tools/ ...

  6. Spring 容器AOP的实现原理——动态代理

    参考:http://wiki.jikexueyuan.com/project/ssh-noob-learning/dynamic-proxy.html(from极客学院) 一.介绍 Spring的动态 ...

  7. 隐藏Nginx版本号

    一般来说,黑客攻击服务器的首要步骤就是收集信息,比如说你的软件版本,这些将成为下一步有针对性攻击的依据.所以说一定程度的隐藏这些信息就显得非常有必要了,本文将简单介绍如何在网络上隐藏Nginx版本号以 ...

  8. X210(s5pv210)中断系统

    1.SoC对中断的实现机制:异常向量表 (1)异常向量表是CPU中某些特定地址的特定定义.当中断发生的时候,中断要想办法通知CPU去处理中断,怎么做到?这就要靠异常向量表.(2)在CPU设计时,就事先 ...

  9. redis linux下的环境搭建

    系统  CentOS7 Redis 官网下载   https://redis.io/download 1.下载解压 [root@TestServer-DFJR programs]# /usr/loca ...

  10. PHP扩展--Oracle客户端(oci8)安装

    下载Oracle客户端 官方下载地址: Linux X86-64 同意协议,下载以下文件: oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm ...