Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: Saako VB.netissä meneillään olevan rutiinin keskeytettyä jotenkin?

Hannu [17.12.2005 11:06:28]

#

Saako Visual Basic.netissä parhaillaan suorituksessa olevan rutiinin keskeytettyä jotenkin?

Eli on sellainen tilanne, että ohjelmani on etsimässä tietoja isosta Excel-taulukosta, käyttäen Excelin omaa hakua. Excelin haku on melko hidas kun pitää etsiä kaikki solut, joihin hakusana täsmää ja soluja on tuhansia. Nyt jos käy niin, että käyttäjä vahingossa antaa sellaisen hakusanan, joka täsmää melkein jokaiseen soluun, niin haku vaan kestää ja kestää.
Pitäisi saada tehtyä formille nappi "Keskeytä haku".
Normaalistihan tuo napinpainallus jää muistiin ja sitä palvellaan vasta sitten kun meneillään oleva rutiini on suoritettu loppuun.
Miten saan ohjelman reagoimaan heti tuohon nappiin?

Niko [21.12.2005 20:22:52]

#

Teet erikseen threadin haulle ja sitten

thread.abort()

Hannu [21.12.2005 23:01:03]

#

Niko kirjoitti:

Teet erikseen threadin haulle ja sitten

thread.abort()

Miten tehdään erikseen thread?
Pitäisikö siis avata toinen moduli, vai miten?

Ongelmani varsinaisesti ratkesikin jo sattumalta tuolla toisessa säikeessä: "Tekstibokseja tabeihin? *VB 6*".
DoEvents oli se mitä etsin.

Kiitos vastauksesta! :)

Metabolix [22.12.2005 00:06:29]

#

https://www.ohjelmointiputka.net/keskustelu/8212-beep-varastaa-fokuksen-säikeetkö-apuun
Siinä niistä säikeistä.

Hannu [23.12.2005 18:03:02]

#

Metabolix kirjoitti:

https://www.ohjelmointiputka.net/keskustelu/8212-beep-varastaa-fokuksen-säikeetkö-apuun
Siinä niistä säikeistä.

Ahaa...
Idea selvisi tuolta. Mielenkiintoista! Tuota voi tarvita joskus.

Tällä kertaa pärjäsin kuitenkin hyvin tuolla DoEventsillä.

Tuolla mainitsemassasi osoitteessa kun on tuo DoEvents-esimerkki ja juttua siitä että kaksi kertaa pitää klikata sitä Button2:sta, niin ihan samaan ongelmaan törmäsin.
Kokeilin kaikenlaista ja huomasin että sitten alkaa toimia kun siirtää focuksen pois siltä controllilta, jonka event on parhaillaan suorituksessa. Eli vaikka:
Button2.Select()
Tai ihan mihin tahansa controliin, kunhan vaan pois Button1:ltä.
En tiedä miksi noin, mutta tuntuisi toimivan nyt yhdellä klikkauksella.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta