python response slow when running external DLL

jfong at ms4.hinet.net jfong at ms4.hinet.net
Fri Nov 27 02:51:35 EST 2015


I am new to Python. As an exercise of it, I try to port a program which was written more than 10 years ago. This program use the Borland C++ Builder as its GUI front end and a DLL does the real work(it will takes a few seconds to complete). I saw a strange phenomenon in the following codes. The "var_status.set('Download...')" statement seems was deferred and didn't show up until the external DLL job was finished and I can only saw the result of "var_status.set('Download OK')" statement which immediately follows. I try to do the DLL function in a thread(selected by using the "test" flag in codes), but it didn't help.

Can anyone tell me what's the point I was missed?

-------------------------
def download():
    global iniFilename
    if test:  global result, busy
    ini = iniFilename
    iniFilename = "c:\\$$temp.in3"
    saveIniFile()
    iniFilename = ini
    #do the rest
    var_status.set('Download...')
    if not test:
        result = mydll.SayHello()
    else:
        busy = True
        _thread.start_new_thread(td_download, ())
        while busy:  pass
    if result:
        var_status.set("Download Fail at %s" % hex(result))
        showerror('Romter', 'Download Fail')
    else:
        var_status.set('Download OK')            
        showinfo('Romter', 'Download OK')

if test:
result = 0x5555
busy = True
def td_download():
    global busy, result
    result = mydll.SayHello()
    busy = False
--------------------------

Best Regards,
Jach



More information about the Python-list mailing list