» »

Visual c++ Prekinitev programa

Visual c++ Prekinitev programa

fogl ::

Zanima me kako prekiniti izvajanje nekega dela programa, recimo s klikom Na Start bi program nekaj računal, potem pa bi ga s klikom na Cancel prekinil?
lp, klemen

sid_dabster ::

Pri izvajanju npr. numericnih metod visje casovne zahtevnosti je ta algoritem dobro umakniti v cisto svoj thread, locen od GUI-a. Resitev zate bi bila najpreprosteje ta, da uporabis sistemski klic CreateThread (kot parameter med drugim sprejme tudi kazalec na funkcijo eksekucije, v kateri bi se tvoj algoritem odvijal). Nato algoritem v vsaki iteraciji cekira nek variable (recimo tipa bool), ki je npr. true, ce naj se algoritem nadaljuje, oz. false, ce naj se prekine. To bool spremenljivko pa nastavis na false v event handlerju, ki je obesen na npr. tipko Cancel.
Fallen beyond all grace deeper and deeper
The sound of her own blood dripping
Like sacred tears from a bleeding rose...( Embraced, Within)

BigWhale ::

Ja! Lahko pa nardis zadevo s semaforji! Sej zato pa so!

Ko zacnes racunat postavis semafor, potem ob vaki iteraciji preglejujes te semaforje....

... ;>

al pa ne kompliciras in naredis z bool spremenljivko, tako kot je bilo predlagano...

noraguta ::

BigWhale , semaforji se uporabljajo pri medprocesni komunikaciji za lockanju resoursov. Pri mednitni se uporablja nacin ki ga je opisal Gorezh.
Pust' ot pobyedy k pobyedye vyedyot!

BigWhale ::

Hm, le zakaj ima toliko thread knjiznjic funkcije za delo s semaforji?

Kaj drugega pa je semafor kot ena bool spremljivka zavita v en malo bolj sofisticiran api? :))

huh...

noraguta ::

semafor je objekt v kernelu. bool spremenljivka je v tem primeru le globalna spremenljivka. in v danem primeru niti ni treba skrbeti za "ortodoksno konsistentno dostopanje do spremenljivke"(critical section),se pac zadeva ustavi kaksen round kasneje. ker ni potrebe po klicu kernela je zadeva precej hitrejsa.

nevem pa o katerih thread kniznicah govoris ce govorimo o thread modelu windowsow. glede na to da ge za visual c.
Pust' ot pobyedy k pobyedye vyedyot!

Zgodovina sprememb…

  • spremenilo: noraguta ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Najbolj plonkajo računalničarji

Oddelek: Novice / Zasebnost
367889 (6482) DavidJ
»

statistika črk v stringu C++

Oddelek: Programiranje
111974 (1710) Tutankhamun
»

[C] bitni operator (strani: 1 2 3 )

Oddelek: Programiranje
1125239 (4072) Thomas
»

Niti (threads)

Oddelek: Programiranje
141804 (1472) snow
»

Desktop aplikacije večinoma niso multithreaded??? (strani: 1 2 )

Oddelek: Programiranje
554642 (3888) Gundolf

Več podobnih tem