private void wc_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e){
if(e.Error == null){
var process = Process.Start(program_name);
process.EnableRaisingEvents = true;
process.Exited += (_,args) => {
File.Delete(program_name);
//Performs on process exited.
};
}
else{
//Error handling...
}
}