C# 异步更新数据库中的信息

C# 异步更新数据库中的信息,c#,multithreading,asynchronous,C#,Multithreading,Asynchronous,我想异步更新数据库中的信息,以下实现之间有什么区别,两者都是异步的 哪一个更好用 new System.Threading.Thread(() => { userModel.Update(); //update the database }).Start(); internal async void ProcessMessageReceived(UserModel userModel) { userModel.Update(); } 第一个实现使用新线程,而第二个实现似乎使用。我们

我想异步更新数据库中的信息,以下实现之间有什么区别,两者都是异步的

哪一个更好用

new System.Threading.Thread(() => {
 userModel.Update(); //update the database
}).Start();

internal async void ProcessMessageReceived(UserModel userModel) {
 userModel.Update();
}

第一个实现使用新线程,而第二个实现似乎使用。我们需要看到Update方法的实现才能完全确定,我猜它会返回一个任务吗

使用TPL通常比生成自己的线程更有效


TPL任务使用线程池,并允许任务的可重用性,这可以提供额外的性能优势。

第二个任务不是异步的,线程做实际工作,异步是正常I/O操作要做的工作第一个线程的范围是什么,何时销毁,何时完成?如果它的背景,它一直运行到主线程运行,而对于前台,它一直运行到需要运行或完成。我们如何确定后台或前台?请检查以下内容: