Je voudrais savoir s'il existe un livre ou un site Web qui explique en détail comment utiliser DataTable d'une manière multithread. Il devrait discuter en détail comment il se comporte lors de l'ajout, de l'obtention, de la mise à jour et de la suppression de lignes. Il devrait également discuter de la bonne façon d'utiliser les verrous, les acceptchanges et d'autres détails importants.Internes DataTable et utilisation multithread
Répondre
DataTables ne sont pas spéciaux: il suffit de lire d'une instance DataTable
est thread-safe (comme il est dit dans la documentation), mais si vous changez tout aspect d'une instance que vous devez vous assurer que vous synchronisez l'accès à il. Au lieu de chercher quelque chose de spécifique aux tables de données multithread, vous devriez lire sur le threading en général. Pour cela, vous ne pouvez pas vous tromper avec Threading in C# de Joseph Albahari.
(Cela dit, jetez un oeil à this discussion thread sur un sujet connexe.)
Je ne pense pas que vous allez trouver beaucoup d'informations sur le sujet. C'est un sujet assez étroit pour un livre et les DataTable
ne sont pas vraiment connus pour être si utiles dans les algorithmes parallélisés. Le problème avec DataTable
s est que DataRow
s sont mariés à eux de façon obscure. Par exemple, la modification d'une valeur de colonne dans un DataRow
faisant partie d'une clé primaire mettra à jour l'index parent DataTable
. Cela rend beaucoup plus difficile d'obtenir un débit parallèle significatif, car vous avez à peu près à verrouiller l'accès à tout lors de toute modification. Cependant, DataTable
et DataRow
sont sûrs pour plusieurs lecteurs (tant qu'il n'y a pas d'écrivains) donc tout n'est pas perdu.
- 1. Utilisation de sections multithread et critiques - C++
- 2. Utilisation de variables de code et de condition multithread
- 3. Sockets et multithread
- 4. Grails et processus multithread
- 5. TCP multicast et multithread
- 6. nHibernate session et multithread
- 7. IWebBrowser2 et appartement multithread?
- 8. Multithread et SMP Linux
- 9. iPhone Core Data et multithread
- 10. Utilisation d'un objet DataTable avec Silverlight
- 11. Utilisation de plusieurs BindingSources sur un DataTable
- 12. C# - File d'attente et multithread
- 13. Manuel de glib et multithread
- 14. outerHeight() et les images internes
- 15. Utilisation du composant COM hérité dans l'environnement multithread C#
- 16. Utilisation d'une file d'attente dans une situation multithread en C#
- 17. DataTable et Viewstate
- 18. Viewstate, datatable et propriétés!
- 19. DataTable et javascript
- 20. Visages riches et dataTable
- 21. JSF, datatable et onRowClick
- 22. Datatable et Datagridview
- 23. Utilisation de BeginInvoke/EndInvoke dans un mode multithread. Comment AsyncCallback, AsyncWaitHandle et IsCompleted interagissent-ils?
- 24. QObject (QPlainTextEdit) et problèmes de multithread
- 25. Nhibernate, multithread et conditions de concurrence
- 26. Isolation de lecture et d'écriture multithread
- 27. C# Application multithread et connexions SQL help
- 28. Interfaces internes?
- 29. gestionnaire délégué et les enfants internes cliqués
- 30. Codages internes et de sortie LibXML
1 - c'est un excellent conseil. –