错误 #CS0738 'Notification' 未实现接口成员 'IJob.Execute(IJobExecutionContext)'。 'Notification.Execute(IJobExecutionContext)'
Error #CS0738 'Notification' does not implement interface member 'IJob.Execute(IJobExecutionContext)'. 'Notification.Execute(IJobExecutionContext)'
using System;
using Quartz;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace hatirlaticiapp
{
public class Notification : IJob
{
public void Execute(IJobExecutionContext context)
{
JobDataMap data = context.JobDetail.JobDataMap;
Task task = (Task)data["Task"];
task.OnNotificationStarted(task, EventArgs.Empty);
}
}
}
对于这行代码,我收到了这样的警告。
错误:
Error CS0738 'Notification' does not implement interface member
'IJob.Execute(IJobExecutionContext)'.
'Notification.Execute(IJobExecutionContext)' cannot implement
'IJob.Execute(IJobExecutionContext)' because it does not have the
matching return type of 'Task'.
编辑 1:添加我的日程安排代码
public class NotificationController : IController<Task>
{
ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
IScheduler scheduler;
public NotificationController()
{
scheduler = schedulerFactory.GetScheduler();
scheduler.Start();
}
}
我也遇到这个错误
错误:
无法将类型 'System.Threading.Tasks.Task<Quartz.IScheduler>' 隐式转换为 'Quartz.IScheduler'。存在显式转换(是否缺少转换?)
请帮帮我...
阅读整个异常,最后它说
... because it does not have the matching return type of 'Task'.
将 return 从 void
更改为 Task
。
查看 https://www.quartz-scheduler.net/documentation/quartz-3.x/tutorial/index.html 可能会有所帮助,因为看起来您的某些代码是为版本 2.2 编写的,但错误消息表明您使用的是版本 3。
特别是您的第二个错误可能是因为您缺少等待,即
scheduler = schedulerFactory.GetScheduler();
scheduler.Start();
应该是
scheduler = await schedulerFactory.GetScheduler();
await scheduler.Start();
另外你的第一个签名应该是
public async Task Execute(IJobExecutionContext context)
并且您可能需要在实际代码中使用 await
。
using System;
using Quartz;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace hatirlaticiapp
{
public class Notification : IJob
{
public void Execute(IJobExecutionContext context)
{
JobDataMap data = context.JobDetail.JobDataMap;
Task task = (Task)data["Task"];
task.OnNotificationStarted(task, EventArgs.Empty);
}
}
}
对于这行代码,我收到了这样的警告。
错误:
Error CS0738 'Notification' does not implement interface member 'IJob.Execute(IJobExecutionContext)'. 'Notification.Execute(IJobExecutionContext)' cannot implement 'IJob.Execute(IJobExecutionContext)' because it does not have the matching return type of 'Task'.
编辑 1:添加我的日程安排代码
public class NotificationController : IController<Task>
{
ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
IScheduler scheduler;
public NotificationController()
{
scheduler = schedulerFactory.GetScheduler();
scheduler.Start();
}
}
我也遇到这个错误
错误: 无法将类型 'System.Threading.Tasks.Task<Quartz.IScheduler>' 隐式转换为 'Quartz.IScheduler'。存在显式转换(是否缺少转换?)
请帮帮我...
阅读整个异常,最后它说
... because it does not have the matching return type of 'Task'.
将 return 从 void
更改为 Task
。
查看 https://www.quartz-scheduler.net/documentation/quartz-3.x/tutorial/index.html 可能会有所帮助,因为看起来您的某些代码是为版本 2.2 编写的,但错误消息表明您使用的是版本 3。
特别是您的第二个错误可能是因为您缺少等待,即
scheduler = schedulerFactory.GetScheduler();
scheduler.Start();
应该是
scheduler = await schedulerFactory.GetScheduler();
await scheduler.Start();
另外你的第一个签名应该是
public async Task Execute(IJobExecutionContext context)
并且您可能需要在实际代码中使用 await
。