witam po raz kolejny :]
tym razem mam pytanie po części teoretyczne :). Zastanawiam się jak spowodować wstrzymanie pętli głównej programu. Najprostrze rozwiązanie które przyszło mi do głowy to skorzystanie ze zmiennej bool pause. W oparciu o jej stan pętla głowna będzie kontynuowałą działanie:
while ( "...lista warunków..." && !pause)
pause zmienia swoją wartość w momencie naciśnięcia przycisku btnPause.
Program miałby następującą struktórę
namespace Program
{
public partial class Form1 : Form
{
public bool pause = false;
...
private void btnStart_Click(object sender, EventArgs e)
{
while ("...lista warunków..." && (!pause))
{
...
}
}
private void btnPause_Click(object sender, EventArgs e)
{
if (simulationClock > 0)
{
pause = !pause;
}
}
}
teraz zostaje jeszcze jeden problem.
Zagadnienie: pętla powinienna kontynuować działanie po 2krotnym wcisnięciu btnPause
Rozwiązanie: a) wprowadzić wątki
b) użyć przerwań (jeśli takowe są możliwe w C#)
Które z powyższych rozwiązań proponujecie?