Kaydet (Commit) 655f600b authored tarafından Guido van Rossum's avatar Guido van Rossum

Don't use thread.exit_prog(); set a global variable to stop other

thread
üst dc3c53cf
# Display digits of pi in a window, calculating in a separate thread.
# Compare ../scripts/pi.py.
import sys
import time
import thread
import stdwin
from stdwinevents import *
ok = 1
digits = []
def worker():
k, a, b, a1, b1 = 2l, 4l, 1l, 12l, 4l
while 1:
while ok:
# Next approximation
p, q, k = k*k, 2l*k+1l, k+1l
a, b, a1, b1 = a1, b1, p*a+q*a1, p*b+q*b1
......@@ -23,11 +26,13 @@ def worker():
d, d1 = a/b, a1/b1
def main():
global ok
digits_seen = 0
thread.start_new_thread(worker, ())
tw = stdwin.textwidth('0 ')
lh = stdwin.lineheight()
stdwin.setdefwinsize(20 * tw, 20 * lh)
stdwin.setdefscrollbars(0, 1)
win = stdwin.open('digits of pi')
options = win.menucreate('Options')
options.additem('Auto scroll')
......@@ -37,7 +42,8 @@ def main():
win.settimer(1)
type, w, detail = stdwin.getevent()
if type == WE_CLOSE:
thread.exit_prog(0)
ok = 0
sys.exit(0)
elif type == WE_DRAW:
(left, top), (right, bottom) = detail
digits_seen = len(digits)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment