我有一个事件的对象。例如:后台事件ASP.NET MVC
var myObject = new MyObject();
myObject.CustomEvent += _myEvent;
private void _myEvent(object sender, CustomEvent e)
{
using (var db = new DbContext())
{
db.MyEntity.Add(e.Property);
db.SaveChanges();
}
}
此事件应该在所有应用程序运行时都处于活动状态。 对于后台任务,我使用Hangfire。但我的事件没有被解雇。也许,根本就没有理由使用Hangfire来解决这个问题。
请帮助,谢谢!
更新
我做的迟发型内启动。
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ModelBinders.Binders.Add(typeof(double), new DoubleModelBinder());
ConfigureAuth(app);
GlobalConfiguration.Configuration
.UseSqlServerStorage("myConString");
BackgroundJob.Enqueue(() => MyEventListener());
app.UseHangfireServer();
}
public void MyEventListener()
{
new MyObject().CustomEvent += delegate (object sender, CustomEvents e)
{
using (var db = new DbContext())
{
db.MyEntity.Add(e.Property);
db.SaveChanges();
}
}
}
}
您所显示的代码都不会尝试在HangFire作业中注册事件。 Hangfire会是一个很好的解决方案,让一些东西在后台运行,但是你需要真正使用它。 – krillgar
谢谢。我将编辑我的帖子以使用Hangfire代码显示。 – loqie