gpt4 book ai didi

multithreading - 在.Net Core的后台插入批量数据

转载 作者:行者123 更新时间:2023-12-03 12:46:29 24 4
gpt4 key购买 nike

我正在使用 .Net Core 3.1 并且我想在后台插入批量数据,所以我不需要我的 http 请求等待它“就像一劳永逸”

所以我尝试了以下代码

public object myFunction(){
Task.Factor.StartNew(() => {
_context.BulkInsertAsync(logs);
});

return data;
}

但是什么也没发生,没有数据保存在数据库中
是在我的数据返回后,我的 _context 和日志将为空,所以该过程被归档?
或者还有其他方法可以插入我的数据并且不要等待它

注意:如果我用发送邮件或任何其他东西替换插入语句,后台任务就会工作

已解决 :

谢谢@Peter,我用它解决了
Task.Run(async () => await _context.BulkInsertAsync(logs));

最佳答案

Task.Factory.StartNewTaskFactory.StartNew不能接受异步委托(delegate)( Func<Task> ),所以你应该使用 Task.Run相反,它确实有一个 overload with Func < Task > .您必须使用 await awaitUnwrap反对StartNew获得与 Run 相同的行为.请阅读Stephen Toub's excellent blog post .

public object myFunction(){
Task.Run(async () => await _context.BulkInsertAsync(logs));
return data;
}

关于multithreading - 在.Net Core的后台插入批量数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62415061/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com