How to pause or stop a long-running function via GUI control?
Andriy Basilisk
basilisk96 at gmail.com
Sat May 12 07:05:05 PDT 2007
SGVsbG8sCgpJIGhhdmUgbWFkZSBhIHNpbXBsZSB3eFB5dGhvbiBhcHAgdGhhdCByZWN1cnNpdmVs
eSBwcm9jZXNzZXMgYSBudW1iZXIgb2YKZmlsZXMgaW4gYSBzcGVjaWZpZWQgZGlyZWN0b3J5IHRy
ZWUgYXQgdGhlIGNsaWNrIG9mIGEgIkdPIiBidXR0b24uIEl0IHdvcmtzCnZlcnkgd2VsbCB3aXRo
b3V0IHByb2JsZW1zLiBUaGUgcXVlc3Rpb24gbm93IGlzOiBob3cgY2FuIEkgYWxsb3cgdGhlIHVz
ZXIgdG8KcGF1c2Ugb3Igc3RvcCB0aGUgcHJvY2Vzcz8gVGhlICJmaWxlIHByb2Nlc3NvciIgaXMg
YSBzaW1wbGUgZnVuY3Rpb24gaW4KYW5vdGhlciBtb2R1bGUuIEl0IG1heSBydW4gZm9yIGEgbG9u
ZyB3aGlsZSBhbmQgbWF5IG5lZWQgdG8gYmUgcGF1c2VkIG9yCnN0b3BwZWQgYWx0b2dldGhlci4g
IEkgY2FuIGFkZCBhICJQYXVzZSIgYW5kIGEgIlN0b3AiIGJ1dHRvbiB0byB0aGUgbWFpbgpmcmFt
ZSwgYnV0IGhvdyB3b3VsZCBJIG1ha2UgaXQgaW50ZXJydXB0IHRoZSBydW5uaW5nIGZ1bmN0aW9u
PyBJcyBpdApwb3NzaWJsZT8KClRoYW5rcyBhaGVhZCBvZiB0aW1lIGZvciB5b3VyIGhlbHAhCi1C
YXNpbGlzazk2CgpNeSBzZXR1cDoKUGxhdGZvcm06IFdpblhQLCBTUDIKICBQeXRob246IFB5dGhv
biAyLjUgKHIyNTo1MTkwOCwgU2VwIDE5IDIwMDYsIDA5OjUyOjE3KSBbTVNDIHYuMTMxMCAzMiBi
aXQKKEludGVsKV0gb24gd2luMzIKd3hQeXRob246IDIuOC4xLjEgKG1zdy11bmljb2RlKQoKTXkg
Y29kZToKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQojQXBwLnB5CmltcG9ydCBvcywgc3lzCmltcG9ydCB3eAppbXBvcnQgd3gu
bGliLmZpbGVicm93c2VidXR0b24gYXMgZmlsZWJyb3dzZQppbXBvcnQgQXBwUHJvYwoKY2xhc3Mg
TWFpbkZyYW1lKHd4LkZyYW1lKToKICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICB3eC5G
cmFtZS5fX2luaXRfXyhzZWxmLCBOb25lLCB0aXRsZT0nQXBwJywgc2l6ZT0oODAwLDYwMCkpCiAg
ICAgICAgc2VsZi5wYW5lbCA9IHBhbmVsID0gd3guUGFuZWwoc2VsZikKICAgICAgICBzZWxmLmJy
b3dzZSA9IGJyb3dzZSA9IGZpbGVicm93c2UuRGlyQnJvd3NlQnV0dG9uKAogICAgICAgICAgICBw
YW5lbCwgbGFiZWxUZXh0PSdJbnB1dCBEaXJlY3Rvcnk6JywKICAgICAgICAgICAgY2hhbmdlQ2Fs
bGJhY2s9c2VsZi5PbkRpcikKICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlciA9IHd4LlRleHRD
dHJsKAogICAgICAgICAgICBwYW5lbCwgc3R5bGU9d3guVEVfTVVMVElMSU5FKQogICAgICAgIHNl
bGYuZ28gPSBnbyA9IHd4LkJ1dHRvbihwYW5lbCwgbGFiZWw9J0dPIScpCiAgICAgICAgc2VsZi5y
b290X3BhdGggPSAnJwogICAgICAgIHNlbGYuc2l6ZXIgPSBzaXplciA9IHd4LkJveFNpemVyKHd4
LlZFUlRJQ0FMKQogICAgICAgIHNpemVyLkFkZChicm93c2UsIDAsIHd4LkVYUEFORCkKICAgICAg
ICBzaXplci5BZGQoZ28sIDAsIHd4LkVYUEFORCkKICAgICAgICBzaXplci5BZGQobG9nZ2VyLCAx
LCB3eC5FWFBBTkQpCiAgICAgICAgcGFuZWwuU2V0U2l6ZXIoc2l6ZXIpCgogICAgICAgIGJyb3dz
ZS5CaW5kKHd4LkVWVF9CVVRUT04sIHNlbGYuT25EaXIpCiAgICAgICAgZ28uQmluZCh3eC5FVlRf
QlVUVE9OLCBzZWxmLk9uR28pCgogICAgZGVmIHByaW50TGluZShzZWxmLCBsaW5lKToKICAgICAg
ICBpZiBzZWxmLmxvZ2dlci5WYWx1ZSAhPSAnJzoKICAgICAgICAgICAgbGluZSA9ICdcbicgKyBs
aW5lCiAgICAgICAgc2VsZi5sb2dnZXIuQXBwZW5kVGV4dChsaW5lKQoKICAgIGRlZiBPbkRpcihz
ZWxmLCBldnQpOgogICAgICAgIHNlbGYucm9vdF9wYXRoID0gZXZ0LkdldFN0cmluZygpCgogICAg
ZGVmIE9uR28oc2VsZiwgZXZ0KToKICAgICAgICBjYWxsYmFjayA9IHNlbGYucHJpbnRMaW5lCiAg
ICAgICAgI2NsZWFyIG91dCBwcmV2aW91cyB0ZXh0CiAgICAgICAgc2VsZi5sb2dnZXIuVmFsdWUg
PSAnJwogICAgICAgIGNhbGxiYWNrKCJCZWdpbm5pbmcgUHJvY2Vzc2luZy4uLlxuIikKICAgICAg
ICBzZWxmLlNldEN1cnNvcih3eC5TdG9ja0N1cnNvcih3eC5DVVJTT1JfV0FJVCkpCiAgICAgICAg
I2NhbGwgZmlsZSBwcm9jZXNzb3IKICAgICAgICBBcHBQcm9jLnByb2Nlc3NGaWxlcyhzZWxmLnJv
b3RfcGF0aCwgY2FsbGJhY2spCiAgICAgICAgc2VsZi5TZXRDdXJzb3Iod3guU3RvY2tDdXJzb3Io
d3guQ1VSU09SX0RFRkFVTFQpKQogICAgICAgIGNhbGxiYWNrKCJcbi4uLkRvbmUhIikKICAgICAg
ICB3eC5NZXNzYWdlQm94KCJQcm9jZXNzaW5nIENvbXBsZXRlISIpCgppZiBfX25hbWVfXyA9PSAi
X19tYWluX18iOgogICAgdHJ5OgogICAgICAgIGFwcCA9IHd4LlB5U2ltcGxlQXBwKCkKICAgICAg
ICBmcmFtZSA9IE1haW5GcmFtZSgpCiAgICAgICAgZnJhbWUuU2hvdygpCiAgICAgICAgYXBwLk1h
aW5Mb29wKCkKICAgIGV4Y2VwdCBFeGNlcHRpb24sIG1zZzoKICAgICAgICBwcmludCBtc2cKICAg
ICAgICByYXdfaW5wdXQoJ1ByZXNzIGFueSBrZXkgdG8gY29udGludWUuLi4nKQoKCiMtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojQXBwUHJvYy5weQojIyMjUHJvY2Vzc29yIG1vZHVs
ZQoKZGVmIHByb2Nlc3NGaWxlcyhyb290X3BhdGgsIGNhbGxiYWNrKToKICAgICNSZWN1cnNpdmUg
ZmlsZSBwcm9jZXNzb3IuCiAgICBpbXBvcnQgb3MKICAgIGNhbGxiYWNrKCJJbml0aWFsaXppbmcu
Li4iKQogICAgdHh0ID0gW10KICAgIGZvciByb290LCBkaXJzLCBmaWxlcyBpbiBvcy53YWxrKHJv
b3RfcGF0aCk6CiAgICAgICAgZm9yIGZuYW1lIGluIGZpbGVzOgogICAgICAgICAgICBGTiA9IGZu
YW1lLnVwcGVyKCkKICAgICAgICAgICAgaWYgRk4uZW5kc3dpdGgoIi5UWFQiKSBvciBGTi5lbmRz
d2l0aCgiLkNTViIpOgogICAgICAgICAgICAgICAgZnVsbG5hbWUgPSBvcy5wYXRoLmpvaW4ocm9v
dCwgZm5hbWUpCiAgICAgICAgICAgICAgICBjYWxsYmFjayhmdWxsbmFtZSkKICAgICAgICAgICAg
ICAgICNkbyBtb3JlIHByb2Nlc3NpbmcgaGVyZS4uLgogICAgcmV0dXJuIHR4dAotLS0tLS0tLS0t
LS0tLSBuZXh0IHBhcnQgLS0tLS0tLS0tLS0tLS0KQW4gSFRNTCBhdHRhY2htZW50IHdhcyBzY3J1
YmJlZC4uLgpVUkw6IGh0dHA6Ly9saXN0cy53eHdpZGdldHMub3JnL3BpcGVybWFpbC93eHB5dGhv
bi11c2Vycy9hdHRhY2htZW50cy8yMDA3MDUxMi84OTgwZjVmZi9hdHRhY2htZW50Lmh0bQo=
More information about the wxpython-users
mailing list