DataSet Segura para Segmento
Eu quero fazer operações de atualização para o DataTable / DataSet thread-safe. Existem ~ 20 threads cada atualização ~ 40 linhas de DataTable global usandoRows.Find(pk)
método de DataTable. Cada thread atualizará linhas distintas de DataTable.
Eu estou usando a seguinte classe de wrapper para DataSet. Esta abordagem é segura para threads?
<code>public sealed class MyDataSet{ public static DataSet ds = new DataSet(); public static UpdateRow(key,data) { object _lock = new object(); DataRow dr = ds.Tables[0].Rows.Find(key); lock(_lock){ dr.AcceptChanges(); dr.BeginEdit(); dr["col"] = data; dr.EndEdit(); } } } </code>
Esse método é chamado de umfor
loop.
<code>for(int x=0; x<40; x++;){ if(someCondition) . . . MyDataSet.UpdateRow(key,data); . . . } </code>
Tudo é feito em um ambiente multithread. O thread do método UpdateRow é seguro?