Knast Skrevet 7. september 2009 Del Skrevet 7. september 2009 Hei! Jeg lager et program som skal kopiere innholdet fra flyttbare lagringsmedier over til lokal disk, og skulle gjerne kunne lage registerdata om mediene samtidig som de kopierer/venter på å bli klart. Eks; jeg har en mp3-cd med et artistnavn utenpå. Jeg putter inn cden, trykker på en startknapp og maskinen venter på at mediet skal bli lesbart, for så å kopiere det over (det er spesielt å vente på at en CD skal bli klar til lesing som er tidkrevende). Derfor vil jeg kunne få opp en ny form med data om innholdet, der jeg kan skrive artistnavnet inn + noe annet data mens jeg venter. Nå har jeg lagt ventpamedie() før registrermedie.Show(). Da er ikke tekstboksene i den nye formen skrivbare før mediet er klart. Finnes det noen smart måte å løse dette på? Om threads er løsning så har jeg prøvd, men er ganske uerfaren så kanskje jeg bare gjorde det feil, så ta gjerne med en eksempelkode Lenke til kommentar
HDSoftware Skrevet 8. september 2009 Del Skrevet 8. september 2009 Det er nok THREAD som skal til. Noe slikt kansje: Thread t = nhew Thread(new ThreadStart(VentPåCD)); t.Start(); // Fortsett med koden din her som håndterer forms ets. public static void VentPåCD() { VentPaMedie(); // Nå er mediet klart og du kan klargjøre resten av Formen btnOK.Enable = true; } Vet ikke om dette hjelper deg, men noe slikt vurde vel strengt tatt kunne gjøre ting i bakgrunnen... Lenke til kommentar
GeirGrusom Skrevet 8. september 2009 Del Skrevet 8. september 2009 Det er nok THREAD som skal til. Noe slikt kansje: Thread t = nhew Thread(new ThreadStart(VentPåCD)); t.Start(); // Fortsett med koden din her som håndterer forms ets. public static void VentPåCD() { VentPaMedie(); // Nå er mediet klart og du kan klargjøre resten av Formen btnOK.Enable = true; } Vet ikke om dette hjelper deg, men noe slikt vurde vel strengt tatt kunne gjøre ting i bakgrunnen... Liten rettelse bare: [code]public static void VentPåCD() { VentPaMedie(); // Nå er mediet klart og du kan klargjøre resten av Formen Invoke(delegate { btnOK.Enable = true; }); } En kan ikke endre en form fra en annen tråd. Lenke til kommentar
HDSoftware Skrevet 8. september 2009 Del Skrevet 8. september 2009 Hehe, var litt for rask i vendinga...... hihi, men selvsagt helt riktig. Alternativt kan man jo fyre en event....- Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå