If this is a synchronous call, then it will only return control to the calling method when the download has completed or an exception is raised.
Looking at the call to the DownloadFile method, it does not appear to be asynchronous as there's no callback method required, therefore the rather bland answer is that it will finish when it finishes; your code will continue from that line - although you'll need to close the brace on the
using (var file = File.OpenWrite(localFileName))
statement!