Threading

16/12/2008 - 22:29 von hugomind | Report spam
Hallo Leute,

Ich versteh was nicht mit Threads.

Hier mein Code :

Thread[] ta = new Thread[800]; // Thread-Array
int j = 0;
while (reader.Read())
{
string projectguid = reader["guid"].ToString();
//add one ReportObject to the hashtable foreach
existing project
hashReport.Add(projectguid, new oReportManagement());

report = (oReportManagement)hashReport[projectguid];
report.Departement = reader["Department"].ToString();
report.Projectname = reader["name"].ToString();
report.DocumentGuid = projectguid;
report.Budget = Double.Parse(reader["budget"].ToString
());

ParamCalc param = new ParamCalc();
param.Dtend = enddate;
param.DtStart = startdate;
param.Projectguid = projectguid;

j++;

ta[j] = new Thread(new ParameterizedThreadStart
(Calculate));
ta[j].Start(param);

}

Also sollte die Methode Calculate ausgerufen werden mit immer anderen
Parameter die vom reader.Read(), also vun einer Datenbank seine
Parameter erhalten sollte.

Problem ist dass in der Calculate Methode danach ein Fehler auftritt
un zwar : There is already an open DataReader associated with this
Command which must be closed first, als ob die Methode zweimal mit
gleichen Parameter aufgeruffen wuerde ?

Dann mir jemand hellefen bitte ?

Danke

Hugo
 

Lesen sie die antworten

#1 Frank Dzaebel
17/12/2008 - 07:27 | Warnen spam
Hallo Hugo,

Ich versteh was nicht mit Threads.
... while (reader.Read())
... There is already an open DataReader associated with this
Command which must be closed first, als ob die Methode zweimal mit
gleichen Parameter aufgeruffen wuerde ?



Zunàchst die Grundlagen dazu, wann man ein
Close des DataReaders durchführen sollte:

[Abrufen von Daten mit einem 'DataReader' (ADO.NET)]
http://msdn.microsoft.com/de-de/lib...3afyz.aspx

In solchen Fàllen kann es helfen,
MultipleActiveResultSets=true
im ConnectionString zu setzen, wenn
denn der Provider dies unterstützt.

[Aktivieren von MARS (Multiple Active Result Sets)]
http://msdn.microsoft.com/de-de/lib...h3abf.aspx


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen