1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Threading mit C#

  • AntiBit
  • 5. Januar 2007 um 21:28
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • AntiBit
    Punkte
    1.712
    Beiträge
    297
    • 5. Januar 2007 um 21:28
    • #1

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

    Die Applikation sieht ca. so aus:

    Code
    Thread[] ta = new Thread[100];
    
    
    for (int t = 0; t < 100; t++)
    {
         ta[t] = new Thread(new ThreadStart(machWas));
         ta[t].Start();
    }
    
    
    private static void machWas()
    {
    for(int i=0;i<100;i++)
    {
    //mach irgendwas
    }
    }
    Alles anzeigen


    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

  • seHaas
    Punkte
    1.238
    Beiträge
    206
    • 6. Januar 2007 um 15:52
    • #2

    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

  • AntiBit
    Punkte
    1.712
    Beiträge
    297
    • 7. Januar 2007 um 15:49
    • #3

    Danke, werde ich mal ausprobieren :thumb:

  • duracell
    Punkte
    220
    Beiträge
    40
    • 7. Januar 2007 um 18:23
    • #4

    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.

  • AntiBit
    Punkte
    1.712
    Beiträge
    297
    • 7. Januar 2007 um 22:37
    • #5

    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.

  • NikP
    Punkte
    110
    Beiträge
    19
    • 8. Januar 2007 um 18:53
    • #6
    Zitat von duracell

    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

  • Maximilian Rupp 27. Dezember 2024 um 12:05

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum