Hallo,
Hach das Leben ist nicht einfach =D...
Ich schreibe gerade eine Applikation, in der intensiv Multithreading verwendet wird. Zuerst eine Verständnisfrage. Nehmen wir folgende Situation an:
Die obere Methode wird nun synchronisiert ausgeführt. Meine Frage ist nun, ob ich das richtig verstehe, dass die untere Methode unter Umständen nicht threadsicher ist.
Meine zweite Frage hat etwas mit der oberen zu tun.
Ich arbeite mit den System.Data.SqlClient um in Threads Daten abzufragen. Von Zeit zu Zeit kriege ich die Exception, dass mehrere Datareads gleichzeitig auf einer Verbindung ausgeführt wurden (was ja nicht verwunderlich ist, da die Threads sich überschneiden können). Wie kann ich dies verhindern. Doch nicht jedem Thread eine eigene Connection geben oder?
Gruss Alexander
Hach das Leben ist nicht einfach =D...
Ich schreibe gerade eine Applikation, in der intensiv Multithreading verwendet wird. Zuerst eine Verständnisfrage. Nehmen wir folgende Situation an:
Code:
private static readonly object padlock = new object();
private void ThreadSafeMethode()
{
lock(padlock)
{
for(...)
{
this.SomeMethod();
}
}
}
private void SomeMethod()
{
//some actions
}
Die obere Methode wird nun synchronisiert ausgeführt. Meine Frage ist nun, ob ich das richtig verstehe, dass die untere Methode unter Umständen nicht threadsicher ist.
Meine zweite Frage hat etwas mit der oberen zu tun.
Ich arbeite mit den System.Data.SqlClient um in Threads Daten abzufragen. Von Zeit zu Zeit kriege ich die Exception, dass mehrere Datareads gleichzeitig auf einer Verbindung ausgeführt wurden (was ja nicht verwunderlich ist, da die Threads sich überschneiden können). Wie kann ich dies verhindern. Doch nicht jedem Thread eine eigene Connection geben oder?
Gruss Alexander