1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Threading mit C#

  • AntiBit
  • 5. Januar 2007 um 21:28
  • Unerledigt
  • AntiBit
    13
    AntiBit
    Mitglied
    Reaktionen
    2
    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

    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.

  • seHaas
    11
    seHaas
    Mitglied
    Reaktionen
    3
    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
    13
    AntiBit
    Mitglied
    Reaktionen
    2
    Punkte
    1.712
    Beiträge
    297
    • 7. Januar 2007 um 15:49
    • #3

    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.

  • duracell
    5
    duracell
    Mitglied
    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
    13
    AntiBit
    Mitglied
    Reaktionen
    2
    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.

    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.

  • NikP
    4
    NikP
    Mitglied
    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! :winking_face:

    --NikP

  • Maximilian Rupp 27. Dezember 2024 um 12:05

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

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

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung