c# ajax连接数据库,c#-ASP.NET Web Api,线程中的数据库连接

我在asp.net应用程序的线程中使用数据库时遇到问题.

当我想启动我的应用程序时,我想用它启动一个名为“ BackgroundWorker”的线程,该线程在后台运行,直到整个应用程序停止.

问题是我在线程中的dbContext有很多问题.

II尝试通过“ ConfigureServices”或“ Configure”方法在Startup.cs中启动walker,然后像这样的“ dbContext = new ApplicationContext()”在Walker的构造函数中初始化dbContext,它告诉我连接不是配置,当我尝试在数据库的while(true)队列中进行操作时.

如果我为Walker编写了一个自己的控制器,该控制器在他的构造函数中接收到ApplicationContext,然后启动了这样的线程,如果我使用GET Request调用了该控制器一次:

public BackgroundWorker(ChronicusContext dbContext)

{

_dbContext = dbContext;

_messageService = new MailMessageService();

}

// GET: api/backgroundworker

[HttpGet]

[Route("start")]

public void StartWorker()

{

//Thread thread = new Thread(this.DoBackGroundWork);

Thread thread = new Thread(() => DoBackGroundWork(this._dbContext));

thread.Start();

}

public void DoBackGroundWork(ChronicusContext _dbContext)

{

while (true)

{

if (_dbContext.PollModels.Any()) //Here is the exception

{

...

}

}

}

然后,我收到一个System.ObjectDisposedException,该对象已经放置在while(true)队列中.

我以许多不同的方式尝试了这些和类似的东西,但是始终会收到像这两个这样的异常,或者数据库连接已关闭.

有人可以帮助我并告诉我这是如何工作的吗?

谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值