Frank (no reg): C# - Schleife funktioniert nicht ?

Beitrag lesen

Hallo Dieter72,

einfach so kreuz und quer ueber verschiedene Threads Variablen inkrementieren muss schief gehen. Verwende Interlocked.Increment(ref int/long).
Dekrementieren koennte auch nicht schaden, und ueberhaupt Thread Synchronisation.

Allein vom Blick auf den Code wuerde ich meinen, du faehrst deutlich besser mit einem Async Producer/Consumer Pattern. Stichworte zum Googeln: Task<>, TPL, ConcurrentQueue<> bzw. Blocking Collections, TPL Dataflow: Du definierst eine Queue oder Collection (welche fuer multithreaded Zugriff geeignet ist!) und startest fuer jedes neu hinzugefuegte Element eine Hintergrundaufgabe: Lade URL Daten und untersuche nach neuen URLs dann packe diese wieder in die Queue und fertig. Web Spider Programme sind quasi eine Paradeanwendung fuer .Net TPL, da findest du genug Codebeispiele im Netz, die du klauen kannst. ;-)

Cheers,
Frank