c# - 从另一种方法(Quartz.NET)获取调度程序。或者一般方法问题

标签 c# methods quartz.net

这可能是关于共享变量的一般问题,但这里是。

我在网页上使用 GridView 来编辑每个作业,并且我需要连接到每个“rowbound”事件以从 jobDataMap 获取一些数据。

无论如何,调度程序在 Page_Load 方法中启动(创建我可以用来访问信息的变量 sched),但从任何其他事件/方法我无法访问 sched 变量。我如何允许自己这样做?

谢谢

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
          if (e.Row.RowType != DataControlRowType.Header)
          {
              var schedulerFactory = new StdSchedulerFactory();
              IScheduler sched = schedulerFactory.GetScheduler(); 


                string schedID = sched.SchedulerInstanceId;
                string id = e.Row.Cells[0].Text;
                string groupid = e.Row.Cells[1].Text;

                JobDetail jobDetail = sched.GetJobDetail(id, groupid);
                Trigger[] trigger = sched.GetTriggersOfJob(id, groupid);
                JobDataMap dataMap = jobDetail.JobDataMap;

                e.Row.Cells[3].Text = dataMap.GetString("nameid");
            }
                  }

最佳答案

您可以使用以下代码来实现此目的:

var schedulerFactory = new StdSchedulerFactory();
IScheduler scheduler = schedulerFactory.GetScheduler();

如果您的调度程序有特定名称,则会出现接受字符串名称的 GetScheduler 重载。

或者您可以使用以下内容:

IScheduler scheduler =
    SchedulerRepository.Instance.Lookup("DefaultQuartzScheduler");

关于c# - 从另一种方法(Quartz.NET)获取调度程序。或者一般方法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3987480/

相关文章:

methods - 重复错误 : undefined method `start_with?' for nil:NilClass

c# - 如何在控制台应用程序中使用 Quartz.net [显示错误]?

c# - quartz 与 "Reactive Extensions"

c# - Quartz.Net - 立即执行作业并删除 ADODataStore 中的触发器和作业

javascript - JSON、AJAX 和 ASP.NET

c# - 实用程序员代码生成练习

java - 我收到错误 : '.class' expected

java - 如何使用对象类从多个列表中存储和检索数据?

c# - “Object does not match target type” 用反射调用泛型方法时

c# - ExtractAll 之后没有出现文件?