Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Tråd trubbel

Postades av 2009-03-12 15:01:49 - Magnus Karlsson, i forum vb.net, Tråden har 7 Kommentarer och lästs av 1042 personer


Har en tråd som loopar ett jobb men skall upphöra om en parameter får ett visst värde.
När det värdet är uppnått skall en ny tråd startas .....

Funkar kanon på mina stationär maskiner. Men på min bärbara maskin stannar allt på precis när den andra tråden startats.

Ide?


Svara

Sv: Tråd trubbel

Postades av 2009-03-13 11:40:06 - Per Hultqvist

Kan det vara så att prestandan på din stationära är bättre/sämre och därför sker saker i en viss ordning där, men på den bärbara kanske det sker i en annan ordning? Ren gissning, jag sysslar sällan med trådar...


Svara

Sv:Tråd trubbel

Postades av 2009-03-15 17:59:55 - Magnus Karlsson


Den andra tråden väntar tills första stannat. När den andra tråden börjr med sitt så går det otroligt långsamt på min bärbara. På stationära går det som det är tänkt.


Svara

Sv: Tråd trubbel

Postades av 2009-03-16 12:47:27 - Oskar Johansson

Jag har en teori: Du har en loop som ligger och bränner upp processorn för att kolla din variabel. På din stationära har du dual core, och där märks det inte eftersom att båda trådarna kan köras parallellt. På din bärbara har du inte dual core, och där är det betydligt mer påtagligt?

Titta på ManualResetEvent/AutoResetEvent istället, bättre än att loopa


Svara

Sv:Tråd trubbel

Postades av 2009-03-16 13:17:06 - Magnus Karlsson

Visst är det så med processorerna kärnor. Skall kolla på tipset. Mycket tack!

Public variabel lokaliserad i en modul

Tråd A:
Har en do while loop som gör lite jobb. Men hoppar över jobbet om mePause=true.

Tråd B:
Gör ett litet jobb


1 Tråd A startas från form X

2 Vid en knapp tryckshändelse i en from Y sätts variabeln mePause = true. Var efter Tråd B startas och gör sitt jobb. Återställer mePause=false

3 Tråd A fortsätter


Har inte kommit på hur jag skall kunna använda ManualResetEvent i min kod som grovt beskrivs ovan. Förslag?



Svara

Sv: Tråd trubbel

Postades av 2009-03-16 15:37:40 - Oskar Johansson

Istället för mePause har du en manualresetevent. Vid punkt 2, istället för att sätta mePause till true så anropas manualresetevent.reset(), trådb.start och till sist manualresetevent.waitone(). Tråd A börjar då vänta.

Innan tråd b dör så ska manualresetvent.set() anropas, varvid tråd a kommer fortsätta


Svara

Sv:Tråd trubbel

Postades av 2009-03-17 12:58:24 - Magnus Karlsson

Fungerar detta även om jag har flera "tråd A" snurrande? Pausar alla tråd A då ?

Innan tråd B går igång måste jag på något sett få reda på att alla "tråd A" har stannat. Hur gör man det?


Svara

Sv: Tråd trubbel

Postades av 2009-03-20 12:26:58 - Oskar Johansson

Man kan lösa det på flera sätt, det sätt som jag kommer på rakt upp och ner är är att ha en long som tråd A räknar upp med System.Threading.Interlocked.Increment(). Sedan sätter den en resetevent så tråd B vaknar upp. Tråd b kollar då variabeln (long) med Interlocked.Read() (se dock till att reseta eventet _innan_ man kollar variabeln, risk för en låsning annars) för att se om alla tråd A har stannat. Om så inte är fallet så börjar den vänta igen.

För att pausa alla tråd A så är det inte värre än att alla väntar på samma resetevent.

Pseudo:

tråd A: Interlocked.Incerement(variabeln); reseteventPaused.Set(); reseteventwait.WaitOne();

tråd B: while(Interlocked.Read(variabeln)<antal_trådar_A) { reseteventPaused.WaitOne(); reseteventPaused.Reset(); } exekveraKod(); reseteventwait.Set();

Den som drar igång att tråd B ska exekvera osv. får se till att skapa alla resetevent, samt nollställa variabeln. (Obs! Endast _två_ resetevent, och reseteventWait måste vara av typen manualresetevent)


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 764
27 959
271 761
538
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies