我想异步更新数据库中的信息,以下实现有什么区别,两者都是异步的?
哪一个更好用?
new System.Threading.Thread(() => {
userModel.Update(); //update the database
}).Start();
internal async void ProcessMessageReceived(UserModel userModel) {
userModel.Update();
}
答案 0 :(得分:1)
您的第一个实现是使用新线程,而第二个实现使用TPL。我们需要看到Update方法的实现是完全确定的,我猜它会返回一个Task吗?
使用TPL通常比产生自己的线程更有效。
TPL任务使用线程池并允许任务的可重用性,这可以提供额外的性能优势。