Tiedän, yleensähän näistä yritetään päästä eroon, mutta nyt pitäisi saada rakennettua sellainen :-)
Eli pitäisi saada pop-up formi VB.NETillä toimimaan seuraavasti. Pop-up triggeröityy kun datan arvo (jota kerätään) ylittää tietyt raja-arvot. Pop-up formilla on timer, label & button ja tarkoitus olisi että buttonia painamalla saisi formin suljettua. Jos käyttäjä ei tee sitä tietyn ajan kuluessa sulkeutuu formi itsestään. Kuulostaa simppeliltä.
Triggeröinti toimii siis ok ja formikin tulee näkösälle mutta tässä on se ongelma: koska triggeröinti suoritetaan varsin raskaasta laskennasta niin tarvitaan käsittääkseni erillinen säie tuolle pop-up formille koska jos vaan luodaan instanssi uudesta formista ja kutsutaan .show metodia niin tällöin uusi pop-up formi kyllä ilmaantuu mutta siihen ei saa mitään kontrollia (eli buttonia ei voi painaa) koska ollaan näköjään tuossa laskennassa vielä mukana. Timer toimii kyllä eli se ikkuna häviää ihan ok. Yritin lisätä säikeen siten että osoitteeksi tulee juuri tuo pop-up formin .show metodi mutta tällöin käy niin että formi vaan vilahtaa putkella. Ilmeisesti se thread päättyy sitten tuon shown kutsumisen jälkeen? Tai jotain :-)
Löytyyköhän vinkkejä miten tuo pitäisi rakentaa?
en tiedä säikeistä, en ole vielä niitä paljoa käyttänyt... Jos meinaat käyttää säikeitä niin luultavasti se onkin se laskenta joka pitäisi laittaa säikeeseen...
Vaihtoehtoisia ratkaisuja...?
Voiskohan sinne laskentaan laittaa seuraavasti:
If bNäytäFormi = True Then Application.DoEvents() End If
missä bNäytäFormi on globaali boolean (tai samassa luokassa) ja sitten siellä timerissä (kun rupeat formia näyttämään) laitat tuon booleanin trueksi?
tai sitten käsittääkseni jos näytät sen formin dialogina (.ShowDialog) niin se pysäyttää sen laskennan dialogin sulkemiseen asti. Onko tämä mahdollinen ratkaisu?
Säikeen käytöstä esimerkki:
https://www.ohjelmointiputka.net/koodivinkit/
olipas tnb hyvä sample!
Lisätietoa:
Olen käyttänyt säikeitä menestyksellisesti toisessa paikassa eli laskennan aikana status tieto (laskennan suorituksesta) päivittyy (samalle formille) labeleihin ok kun label.text arvo sijoitetaan säikeessä.
Mutta nyt siis ongelmana saada tuo form2 toimimaan vähän samalla tavalla.
Mutuna on arvio että se säie meneekin loppuun kun form2:n Show metodi on mennyt loppuun...? Tai se vilahdus voisi nyt johtua jotenkin siitä?
Aihe on jo aika vanha, joten et voi enää vastata siihen.