2017-05-16 3 views
0

データベース内の情報を非同期に更新するには、次の実装の違いはどちらも非同期ですか?データベース内の情報を非同期に更新する

どちらをお勧めしますか?

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

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

2番目のスレッドは非同期ではなく、スレッドは実際の作業を行い、asyncは正常に実行される作業です。 – brykneval

+0

最初のスレッドのスコープは何ですか、いつ破壊されるのか、終了するのですか? – bilal

+0

がバックグラウンドであれば、メインスレッドが実行されるまで実行されますが、フォアグラウンドでは、実行するか完了するまで実行されます。 – brykneval

答えて

1

TPLを使用しているように見えるしながら、あなたの最初の実装は、新しいスレッドを使用しています。私たちはUpdateメソッドの実装を完全に確認する必要があります、私はタスクを返すと思いますか?

通常、TPLを使用する方が独自のスレッドを生成するより効率的です。

TPLタスクは、スレッドプールを使用して、パフォーマンスのメリットをさらに高めるタスクの再利用を可能にします。

関連する問題