在Quartz.Net中解析cron表达式

时间:2013-12-27 15:15:22

标签: c# .net cron quartz.net

我有一个问题,指的是quartz.net cron表达式。我已经阅读了很多文章,并尝试了许多代码,但没有任何结果,所以我觉得有点无望,这就是我决定问你的原因。也许有人也有类似的问题。 有没有办法解析Quartz.Net到DateTime格式的cron表达式? 例如,我有一个cron:

var cron = new Quartz.CronExpression("0 * 8-22 * * ?");

我试过使用GetFinalFireTime()GetTimeAfter()GetNextValidTimeAfter()但是应用程序仍然抛出异常:

An unhandled exception of type 'System.AccessViolationException' occurred. Additional information: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

这是我的代码:

CronExpression cron = new Quartz.CronExpression("0 * 8-22 * * ?");
DateTimeOffset? nextFire = cron.GetNextValidTimeAfter(dt);

如果你能告诉我是否有任何cron解析器库可以轻松创建crons,我也将非常感激。类似于cronMaker.com的东西,但正确使用Quartz.Net。

2 个答案:

答案 0 :(得分:2)

GetFinalFireTime还没有implemented yet 如果您使用的是最新版本之一,GetNextValidTimeAfter应该正常工作。

如果您想在c#中生成 cron表达式,可以使用CronScheduleBuilder

<强>更新

您可以找到一个简单的项目here(QuartzNetCronExpressions.zip),您可以在其中查看它的工作原理。

注意:我使用过VS 2013,Framework 4.5.1和Quartz.net 2.2.1(nuget包)。

答案 1 :(得分:1)

我遇到了同样的问题。以某种方式我的构建项目配置设置为x86。它没有给我更改它的选项。我卸载了项目并在记事本中更改了它。将配置设置为&#34; AnyCPU&#34;事情开始解决问题