Thread-sicherer Datensatz

Ich möchte Aktualisierungsvorgänge für DataTable / DataSet threadsicher machen. Es gibt ~ 20 Threads, die jeweils ~ 40 Zeilen der globalen DataTable mit aktualisierenRows.Find(pk) Methode von DataTable. Jeder Thread aktualisiert verschiedene Zeilen von DataTable.

Ich verwende die folgende Wrapper-Klasse für DataSet. Ist dieser Ansatz threadsicher?

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

Diese Methode wird von a aufgerufenfor Schleife.

<code>for(int x=0; x<40; x++;){
    if(someCondition)
    .
    .
    .
    MyDataSet.UpdateRow(key,data);
    .
    .
    .
    }
</code>

Alles wird in einer Multithread-Umgebung durchgeführt. Ist der UpdateRow-Methodenthread sicher?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage