我已经实现了一个执行一些长期处理工作的后台服务。事情安排的快照如下:
Task.Run(async () =>
{
await DoBackgroundJob();
});
public async Task DoBackgroundJob() {
MatchAndInsertIntoDb(); // call another method
}
方法MatchAndInsertIntoDb
的方法签名如下:
public ObservableCollection<Trucks> MatchAndInsertIntoDb() {
问题在于,当我在每一行上设置断点时,方法MatchAndInsertIntoDb()
会在每行按F10
时正确执行。
但是当后台服务在没有调试和断点的情况下运行时,方法MatchAndInsertIntoDb()
似乎没有正确执行。方法MatchAndInsertIntoDb()
在其主体中有一些方法,例如查询本地数据库并对另一个列表执行匹配以及在远程Web服务上发布数据。
我怀疑是因为它是一个长期运行的操作,所以没有足够的时间来正确完成执行。
有人可以在这个问题上给我启发或帮我解决吗?