.net 3.5データテーブルを使用しており、複数のスレッドからデータテーブルに行を追加しています。ロックを使用しない場合、datatablrの行数と最大インデックスの間に不一致が発生します。テーブルをシリアル化しようとすると、例外が発生しますthere is no rows at poitions X
。もちろん、データテーブルをロックすることはできますが、原因を知りたいのですが。row.count()
このメソッドは、独立していないカウンターではなく、行の最大インデックス+1に基づいて返されることを期待します。rows.Add
また、 (params)メソッドの内部実装はどこにありますか?soemの場合、追加が同じ行にある場合でも、追加ごとにカウンターが上がるようです。
編集:コメントをありがとう。私はそれが書き込みに対してスレッドセーフではないことを知っており、syncrootオブジェクトのロックを使用してすでにそれを解決しています。addメソッドの内部で何が起こっているのかを確認して、カウントが混乱する場所を確認したいと思います。