| 

.NET C# Java Javascript Exception

1
Hallo zusammen,

das Thema Multithreading ist für mich relativ neu.
Ich will eine Datenbank abfragen. Während dieser Abfrage will ich um Zeit zu sparen eine weitere Abfrage je Ergebnis starten um weitere Informationen zu sammeln.

Beispiel:

friend structure sNode
dim NodeID as String
dim ParentNode as String
dim SubNodeIds() as String
end structure

result = SQL_Select("Tabelle","*","where parentid='123',connection1")

while result.read
dim thisNode as new sNode
thisNode.NodeID = result!NodeID
thisNode.ParentNode = result!ParentNodeID

'hier würde ich gern einen Thread aufmachen um die Unterknoten des aktuellen Knoten
thisNode zu sammeln
'wenn das mit einem neuen Thread geht, muss der neue Thread eine neue Connection connection2 verwenden oder kann ich connection1 wiederverwenden? wie teile ich dem neuen Tread die Variable thisNode mit und wie bekomme ich die Ergebnisse für SubNodeIds() zurück?
'mit einem weiteren Select geht das natürlich auch, aber ich denke mit einem einen
weiteren Thread ist das schneller

end while


Vielen Dank für eure Hilfe,
Daniel
01.03.2013
schlumpfger 288 1 8
Welche Framework-Version setzt Du ein?
lbm1305 01.03.2013
.Net Framework 4.0
schlumpfger 03.03.2013
1 Antwort
2
Ich hätte den Beitrag besser lesen sollen :-)
Bei diesem Szenario wäre doch ein JOIN besser, als für jeden Knoten die Unterknoten zu laden.

Was Du aber machen kannst, ist mit der TPL (Task Parallel Library) zu arbeiten.
Alle Nodes holen, um dann parallel für jeden Node die SubNodes zu holen.
MSDN - Task Parallel Library
03.03.2013
lbm1305 849 1 8
lbm1305 849 1 8
Vielen Dank, ich schau mir das mal an.
schlumpfger 04.03.2013
Das 2-stufige Vorgehen ist sicherlich besser. Was passiert, wenn die erste Abfrage plötzlich tausende von Treffer liefert? Dann würdest Du genau so viele Threads starten ...
Xantiva 05.03.2013
Ich sehe auch das Problem bei den vielen Connections, die möglicherweise geöffnet werden und bei der Behandlung der Threads / Tasks.
lbm1305 05.03.2013

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH