Threading mit C#

  • Hi,
    bitte um Hilfestellung für einen C#-Neuling:

    Die Applikation sieht ca. so aus:


    Also: Es werden 100 Threads gestartet, wobei jeder von denen in einer eigenen Schleife X Aufgaben erfüllt.

    Was ich nun machen will, ist eine Art Benchmark, nach der Art:

    Start-Zeitpunkt festlegen genau nach der Initialisierung des Thread-Arrays und dann Zeit wieder messen wenn ALLE Threads fertig sind.

    Weiß jemand wie man das in C# bewerkstelligen kann?
    Danke,
    Mfg AntiBit

    Hätten uns Spiele wie Pac-Man in unserer Jugend beeinflusst, würden wir heute durch dunkle Räume irren, elektronische Musik hören und Pillen fressen.

  • du koennest es mit "Thread.Join()" versuchen:

    Code
    for (int i=0; i<100; i++)
    {
      ta[i].Join();
    }


    da wartet das programm so lange bis der thread fertig ist, wenn er aber vorm join schon fertig ist laeuft er eh drueber, also bist du mit der schleife fertig wenn alle thread fertig sind. und dann nimmst wieder die zeit.

    mfg seHaas

  • Danke, werde ich mal ausprobieren :thumb:

    Hätten uns Spiele wie Pac-Man in unserer Jugend beeinflusst, würden wir heute durch dunkle Räume irren, elektronische Musik hören und Pillen fressen.

  • die erzeugung von 100 threads könnte sich auf die performance auswirken... für die stable version deiner software würd ich mir mal den ThreadPool ansehen. irgendwann hat auch jemand entdeckt, dass die implementierung des ThreadPool in C# .NET 2.0 fehlerhaft ist und den ManagedThreadPool geschrieben (google), der die fehler beseitigt.

  • Naja, es soll eh keine "richtige Software" werden.

    Was ich damit erreichen will, ist, die verschiedenen Session-Management Mechanismen von ASP.NET zu benchmarken. Ich brauche also diese vielen Threads um einen möglichst hohen Serverload zu simulieren, der in Echt natürlich von Menschen die die Website besuchen verursacht wird.

    Bin nur noch komplett neu im C#-Milieu.

    Hätten uns Spiele wie Pac-Man in unserer Jugend beeinflusst, würden wir heute durch dunkle Räume irren, elektronische Musik hören und Pillen fressen.

  • die erzeugung von 100 threads könnte sich auf die performance auswirken... für die stable version deiner software würd ich mir mal den ThreadPool ansehen. irgendwann hat auch jemand entdeckt, dass die implementierung des ThreadPool in C# .NET 2.0 fehlerhaft ist und den ManagedThreadPool geschrieben (google), der die fehler beseitigt.


    Nur aus reine Interessen, welchen Feldern sind da gemeint?
    Ich habe vorerst das gefunden:

    • KB911816: Unhandled exceptions cause ASP.NET-based applications to unexpectedly quit in the .NET Framework 2.0.

    oder ist da etwas anderes gemeint?

    @zum Thema:
    ich kann leider zum Thema kaum etwas Neues sagen, denn es wurde schon (fast) alles gesagt.

    Eigentlich, wenn der oben genannte Fehler gemeint war, dann würde das nicht für normale Anwendungen zutreffen sondern nur bei ASP.NET-basierende Anwendungen.
    Vielleicht sollte man das beachten! ;)

    --NikP

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!