2010-11-05 6 views
2

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

5

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.)

4

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

1 - c'est un excellent conseil. –