public static void DownloadJarAsync(EntityViewModel viewModel, DirectoryInfo directoryInfo) { Thread thread = new Thread(() => { viewModel.StartDownload(); WebClient webClient = new WebClient(); webClient.DownloadProgressChanged += viewModel.DownloadProgressChanged; webClient.DownloadFileCompleted += viewModel.DownloadCompletedHandler; webClient.DownloadFileAsync(new Uri(viewModel.Entity.Version.JarLink), Path.Combine(directoryInfo.FullName, "server.jar")); }); thread.Start(); }