Gå til innhold

C#: Hvordan begrense båndbredden i et multithreaded nedlastingsprogram?


Anbefalte innlegg

Skrevet

Jeg driver på med å lage et slags nedlastingsprogram, men har et problem...

Jeg må få til en metode å begrense båndbredden på.

 

Programmet har som sagt mange nedlastingstråder, og jeg må begrense den samlede båndbredden av disse.

 

Har lest litt på wikipedia om Token Bucket og Leaky Bucket, men er litt usikker på hvordan jeg skal implementere dem.

 

Eventuelt, finnes det andre ting jeg kan bruke, som f.eks. QoS, BITS eller lignendes?

  • 4 uker senere...
Videoannonse
Annonse
Skrevet (endret)

OK, fant det ut :)

Man lager en klasse av TrafficShaper, også bruker man ReadLine (Eneste funksjonen jeg bruker i dette tilfellet, derfor er det kun den som er implementert) for å lese ^^

 

edit: Igjen, VB.NET :p (I C# seksjonen, sorry)

edit: Bugfikset versjon.

TShaper.zip

Endret av Wubbable
Skrevet

Jeg har jobbet med VB i mange mange mange år, fra QuickBasic, til Visual Basic 3.0 -> 6.0 -> .NET -> Visual Basic 2005. Jeg går neppe tilbake til det makkverket der med det første ^^

Skrevet

hmmm men hvorfor bruker du egentlig textreader? skulle du ikke laste ned filer?

Dette vil jo føre til at hastigheten blir satt av datafilen, og dersom filen ikke inneholder noen newlines, så vil jo alt bli lest i en go.

Skrevet (endret)

Det jeg skal er å lese tekst fra en StreamReader som bruker NNTP protokollen :)

edit: Fant forresten en del feil, laster opp igjen etterpå...

Endret av Wubbable

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...