Witam. Już opisuję sytuację. Napisałem w języku Python program do ściągania zdjęć ze stron internetowych. GUI programu zrobione zostało w oparciu o Tkinter i działa ono w głównej aplikacji (bez tworzenia nowego wątku). Do pola edycji wkleja się adres strony, z której ma być pobrane zdjęcie. Mamy przycisk do rozpoczęcia downloadu. Po kliknięciu uruchamiany jest wątek, który ściąga plik i wypisuje komunikaty polu tekstowym (rozpoczęto pobieranie, itp.). Gdyby download nie był przeprowadzony w wątku, to by się zawieszało GUI na czas ściągania. W systemie Linux ten skrypt działa bardzo dobrze. U kolegi pod Windowsem zdjęcia są zapisywane tak jakby coś naruszało pamięć wątku ściągającego - pobrane zdjęcia są nieczytelne, kolory w miarę się zgadzają, więc pewnie tylko część danych jest naruszona, niektórych zdjęć nie da się odczytać, więc pewnie w nich nagłówki plików popsuło. Do pobierania plików używam urllib2:
webFile = urllib2.urlopen(fileurl)
localFile = open(mangaDir+fileurl.split('/')[-1], 'w')
localFile.write(webFile.read())
webFile.close()
localFile.close()
Wątek tworzę w taki sposób:
start_new_thread(self.downloadList,())
Prawdopodobnie Win inaczej zarządza pamięcią wątków, tak więc pytanie brzmi jak zabezpieczyć pamięć tego wątku, by wyeliminować problem pod Win. Czy np. pobieranie pliku w "chunk'ach", zamiast w całości do pamięci coś pomoże?