//start button2.Visible = true; start_but.Visible = false; com.ReadOptions(); com.openport(); access.ReadOptions(); access.opencon(); exit_loop = 0; do { PA1 = com.readstring(); //Readstring med den while som skal stoppes starters her access.makestring(PA1); access.DBcomand(); Application.DoEvents(); } while (exit_loop == 0); }
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Jeg tror faktisk det bliver svært for dig, at komme til at trykke på button2, da du blokerer hele gui-tråden med dine while-løkker.
At du kalder Application.DoEvents() er en grim nødløsning, og selv hvis det kommer til at virke, vil det ikke blive en stabil løsning.
Dine while-løkker skal køre i en anden tråd (eller du kan alternativt bruge events fra din com-port). Men prøv at google på BackgroundWorker, og se hvordan du kan få noget til at køre i baggrunden, og alligevel være cancelable.
Sådan her laver man baggrundstråde i ASP.NET: - Tråden er statisk så alle der besøger siden kan se den - Du snakker med tråden via en statisk struct/class/instans - Du henter information ud på frontend med java script: page.aspx?GetWorkerStatus=1 - for at stoppe en tråd som løber løbsk, brug IISRESET - hver gang du compiler bliver tråden også resettet hvis du debugger på IIS eller Studio serveren.
-----------------------------
//din baggrundstråd static Thread BGWorker; static bool isRunning = false; static struct ThreadInfo { string Information; //brug denne variabel til at snakke med tråden int tal; //brug dette tal til at snakke med tråden }
Det er sådan set underordnet... du kan stadig bruge Tråd-programmering til at gøre din app bedre og sørge for at den ikke låser GUI...
Synes godt om
Ny brugerNybegynder
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.