Gå til innhold

C#: Åpne ny form samtidig som filer kopieres


Anbefalte innlegg

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
Videoannonse
Annonse

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
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

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...