Da niemand etwas anderes erwähnt hat, ist es wohl erforderlich, dass nach dem Aufruf des Download Threads ein Timer zyklisch prüft, ob OnDownladComplete schon ein Ergebnis bereit gestellt hat?
Genau an der Stelle (OnDownloadComplete) weißt du doch, das du fertig bist. Also warum noch ein Timer?