//
加载程序集(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[
1
];
params_type[
0
] = Type.GetType(
"
System.String
"
);
//
设置Show_Str方法中的参数值;如有多个参数可以追加多个
Object[] params_obj =
new
Object[
1
];
params_obj[
0
] =
"
你好
"
;
//
执行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(
1
),
2
);
DateTimeOffset endTime
= DateBuilder.NextGivenSecondDate(DateTime.Now.AddHours(
2
),
3
);
//
创建并配置一个触发器
//
每三秒执行一次,一共执行100次,开始执行时间设定在当前时间,
//
结束时间我设定在2小时后;超过两小时不管有没有执行100次,都不执行了。
ISimpleTrigger trigger =
(ISimpleTrigger)TriggerBuilder.Create().StartAt(startTime).EndAt(endTime)
.WithSimpleSchedule(x
=> x.WithIntervalInSeconds(
3
).WithRepeatCount(
100
))
.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 "无数据";
return "你传入的参数是:" + str;