//reakcia na zastavenie, resp. pokracovanie, simulacie private void zastaveniePokracovanieSimulacie_Click(object sender, EventArgs e) { if (HodnotyStavuSimulacie.ZistiBolaSpustena()) { if (!HodnotyStavuSimulacie.ZistiBolaZastavena()) { HodnotyStavuSimulacie.NastavBolaZastavenaPokracuje(true); zastaveniePokracovanieSimulacie.Text = "Pokracovanie simulacie"; } else { HodnotyStavuSimulacie.NastavBolaZastavenaPokracuje(false); zastaveniePokracovanieSimulacie.Text = "Zastavenie simulacie"; } } else { MessageBox.Show("Nema zmysel."); } }
//spustenie vypoctu simulacie pomocou backgroundworker private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { int dlzkaSpanku; while (HodnotyStavuSimulacie.ZistiBolaSpustena() && !HodnotyStavuSimulacie.ZistiBolaZastavena()) { dlzkaSpanku = 0; StatickeHodnoty.ZistiBehSimulacieSimulacia().SpustiSimulaciu(); if (StatickeHodnoty.ZistiBehSimulacieSimulacia().ZistiDobaBehu() == 0) { Thread.Sleep(2000); } backgroundWorker1.ReportProgress(1); StatickeHodnoty.ZistiAutoResetEvent().WaitOne(); while (dlzkaSpanku < Konstanty.ZistiVyslednuDobuPrestavku() && HodnotyStavuSimulacie.ZistiBolaSpustena() && !HodnotyStavuSimulacie.ZistiBolaZastavena()) { Thread.Sleep(1); dlzkaSpanku++; } } }