När mitt program går in i en loop så hänger sig mitt formulär tills loopen är avklarad. Går det att lösa? Ett formulär svarar inte medans det arbetar om du kör kod i aktuell tråd. För att inte formuläret skall låsa sig måste du i Click eventet starta en ny tråd som kör koden du vill. Tänk då på att användaren kan trycka på knappen flera gånger innan tråden utförts. Stort tack, funkar perfekt.Formen hänger sig
Eftersom det är mycket kod i programmet så skapade jag ett litet test projekt. När man klickar på knappen så startar min loop och formuläret hänger sig.
<code>
private void button1_Click(object sender, System.EventArgs e)
{
for(int i = 0; i < 500000; i ++)
textbox.Text = i.ToString();
}
</code>Sv: Formen hänger sig
Du bör därför tänk på det och eventuellt hindra det genom t.ex:
<code>
private void button1_Click(object sender, System.EventArgs e)
{
button1.Enable = False
// Starta tråd som kör kod
}
</code>
Sedan låta button1.Enable = True först när koden i den nya tråden utförts. Du bör inte gör detta genom att direkt i koden referera till kontrollen. Utan istället rapportera att koden körts klart med ett event och hantera eventet i formuläret.Sv: Formen hänger sig
<code>
ThreadStart myThreadDelegate = new ThreadStart(FindTargets);
Thread myThread = new Thread(myThreadDelegate);
myThread.Start();
</code>
En fråga bara, måste man stänga ner tråden på något vis eller sköter det sig självt?