私は、私たちの部門のコンテストのデバッグにWindowsアプリケーション(c#.netを使用)を作成しました。この多くのユーザーの は、同じデータベースを使用して質問のリストを選択し、それぞれのIDだけでマークを更新します。 それは any1 .. advaceで おかげで私を助けてください...同じデータベースを更新する際にマルチスレッドの概念を使用する必要がありますか?
答えて
Mutil-Threading
または複数のスレッドを使用すると、複数の操作を行いたいシナリオで使用されている...彼らは、データベース内の自分のマークを更新したときにスレッドの概念を使用する必要がありません同時に1つのタスクを実行したり、同時にいくつかのタスクを実行したりすることができます。あなたのシナリオとシナリオで複数のスレッドを使用する可能性について考える必要があります。 2つの別々のタスクに分けることができ、並列に実行できるタスクがあると思われる場合は、マルチスレッドを使用してパフォーマンスを向上させることができます。同様に、重い時間がかかるタスクがあると思われる場合は、そのタスクをBackground Thread
に移動し、メインスレッドを使用して他のタスクを並行して処理できます。それはあなたのシナリオによって異なります。
は、今ではWindowsフォームアプリケーションである場合、最も可能性の高いUIを通じて相互に作用します一度このアプリの唯一の利用者があるでしょう、あなたのシナリオに来ます。この仮定が正しければ、私はあなたがマルチスレッドを必要とするとは思わない。ユーザーが徹底UIいくつかの入力を行っていると、彼はDB内の情報を保存するために最後に保存ボタンをクリックした場合、あなたはマルチスレッド必要はありません、単一のUIスレッドをなし、これは必要ありません。この
行うのに十分だろう。各ユーザーはデータベース接続プールからの接続を確立し、それらは同時に動作し、並列プログラミングは必要ありません。
異なるスレッドからデータベースを更新すると、データベースが破損することはありません。これは、オブジェクトを保護するためにロックを適用する必要がある通常のC#とは異なります。データベースの更新がより高いレベルで相互に干渉しないようにするには、トランザクションを使用する必要があります。非常に簡単に言えば、複数のテーブルでデータベースを編集する場合や、データベースの変更がデータベースの内容(顧客からの注文の追加など)によって異なる場合、トランザクションによって一貫性が維持されます。 。
データベースの操作にUI以外のスレッドを使用する必要があります。それ以外の場合は、UIが応答しなくなる可能性があります。例えば。 UIスレッドから長いクエリを実行する(または接続が中断されたり、データベースが多用されたり、間違っているものが間違っているなど)、完全な応答が受信されるまでUIスレッドはブロックされます。 ACID - あなたは、データベース内の同じデータを更新することができ、複数のユーザーが、持っている状況では
、あなたは正しい制御とデータの流れを確保するために取引を導入する必要があるかもしれません。- 1. iOS:同じビューを使用する複数のNSTimerインスタンス - マルチスレッドを使用する必要がありますか?
- 2. マスターリストのアイテムの更新があるたびに、同じアイテムを更新する必要があります
- 3. エンティティフレームワークの概念モデルを更新する
- 4. Microsoft Graphを使用する際にアクセストークンを更新する必要がありますか?
- 5. ファイルシステムの領域内にシングルまたはマルチスレッドの概念はありますか?
- 6. バックエンドでマルチスレッドにWorkManagerを使用する必要がありますか?
- 7. Modernizrjs + YepNopejs + Requirejsを同じページで使用する必要がありますか?
- 8. バンドル:毎回同じコマンドラインオプションを使用する必要がありますか?
- 9. フォームとデータベースのフィールド名は同じである必要がありますか?
- 10. 概念的には、これをOOPでどのように構成する必要がありますか?
- 11. AngularJSアプリを編成する際に、モジュールの名前が同じである必要がありますか?
- 12. factoryを使用してオブジェクトを更新する必要がありますか?
- 13. データベース接続を閉じる必要がありますか?
- 14. チュートリアルNotepadv3でデータベースを閉じる必要がありますか?
- 15. 同じ/異なるインスタンスを複数のViewModelが同じドメインオブジェクトに要求する必要がありますか?
- 16. ObjectDataSource更新でパラメータを使用する必要がありますか?
- 17. SQL - CASE文で更新すると、同じCASEを何度も繰り返す必要がありますか?
- 18. 概念実証アプリケーションにテストを自動化する必要がありますか?
- 19. CoreDataStackの更新時に同じデータベースを使用する方法
- 20. プロパティの変更を反映するためにデータベースをいつ更新する必要がありますか?
- 21. データベースに同じ値を更新する際にエラーが発生しました
- 22. ドロップダウンリストからクエリを更新する必要があります
- 23. System.Net.WebClient - 非同期を使用する必要があります
- 24. SwiftにはC#のイベントと同様のイベントの概念がありますか?
- 25. サーバにアップロードする際、laravelのdatabase.phpファイルのデータベース設定を変更する必要がありますか?
- 26. WSDLには非同期Webメソッドの概念がありますか?
- 27. 2つの異なるサーバに同じpostgresqlデータベースを使用する際に問題はありますか?
- 28. 同じPythonスクリプトの複数の実行インスタンスに更新イベントを通知する必要があります
- 29. Java:同期と待機に同じオブジェクトを使用する必要がありますか?
- 30. 軽いデータベース/ストレージソリューションを変更する必要があります