Thank you for the hints!

Indeed, using the parent widget "update" method after any text insertion (or any graphical change to the GUI for that matter) ensures that progress messages are delivered in time.

It also makes the GUI somewhat responsive. Now, most of the time, an update call will be reached every two or three seconds. So, if the user wants to abort and press the exit button, it will exit within a couple of seconds. It's still not very elegant, but this is way better than having to wait for the entire computation to be done before the "abort" command is executed! If this is the best way to keep the GUI responsive without using parallel programming, I will be very happy to take this route.

But I still see a problem with this solution, so I would like to submit it to the eyes of the Monastery. The remaining problem is: whether it takes 0.1 seconds or 10 seconds between two update calls depends upon the user's input files. That's because the time it takes for a chunk of code to execute (and hence, the time it takes between two update calls are executed) depends on the nature of the input. Can you, monks of the Monastery, think of a way to make update calls at fixed time intervals (let say once or twice per second) even though I have little control on the time it takes to execute a chunk of code?

Thanks again for your help! It is very appreciated!


In reply to Re^2: Is there a way to free the Tk MainLoop without getting into parallel programming? by Takuan Soho
in thread Is there a way to free the Tk MainLoop without getting into parallel programming? by Takuan Soho

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.