Avatar billede hehe7777 Nybegynder
11. marts 2008 - 16:53 Der er 4 kommentarer og
1 løsning

applikation låser

Jeg har en aplikation der i nogle tråde henter nogle filer.
Efter hver er hentet opdateres en datagrid med information om der er lykkedes eller ej.

private delegate void UpdateExportGridDelegate();

private void UpdateExportGrid()
{
    if (this.ExportWorkspace.dataGridView.InvokeRequired)
    {
        this.ExportWorkspace.dataGridView.Invoke(new UpdateExportGridDelegate(UpdateExportGrid));
    }
    else
    {
        ...opdatere min Workspace.datagridview...
    }
}

Når jeg kører aplikationen fra Visual Studio er den meget stabil, men hvis jeg eksekverer .exe filen bliver aplikation ustabilt og låser hvis jeg f.eks flytter formen mens trådene kører?

Nogen der har en forklaring på dette?
...og hvad kan jeg gøre ved det.
Jeg ved godt at det altid er risky business at opdatere kontroller fra andre tråde, men forstår ikke helt hvorfor det er stabilt når det kører fra VS.
Avatar billede wisen Nybegynder
12. marts 2008 - 13:28 #1
Den låser helt sikkert på grund at en deadlock :)

... når du kalder Invoke, sørger frameworket for at det er den den tråd der har skabt controllen, der kommer til at eksekvere koden - dette er typisk "GUI tråden". Det er også GUI tråden som bliver brugt til tegne alt det andet med, herunder gentegning af vinduet når du flytter det...

... at det fungerer fra VS må være på grund af debuggeren, som holder trådene i skak.

/Wisen
Avatar billede hehe7777 Nybegynder
12. marts 2008 - 23:19 #2
Ja det lyder meget rigtigt. Har løst det ved at skære ned på antallet af opdateringer af datagridet. Der er vel ikke andet at gøre vel?

Wisen smid et svar for din gode forklaring
Avatar billede wisen Nybegynder
13. marts 2008 - 08:17 #3
1 stk. svar
Avatar billede hehe7777 Nybegynder
13. marts 2008 - 10:24 #4
1 stk svar accepteret
Avatar billede wisen Nybegynder
13. marts 2008 - 11:27 #5
takker :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester