Procédure de programmation pour télécharger un gros fichier en C#

J'ai besoin de programmation pour télécharger un gros fichier avant de le traiter. Quelle est la meilleure façon de le faire? Comme le fichier est volumineux, je veux du temps à attendre pour que je puisse avec force la sortie.

Je sais de WebClient.DownloadFile(). Mais il ne semble pas une façon spécifique d'un montant de temps à attendre donc, comme pour forcer la sortie.

try
{
    WebClient client = new WebClient();
    Uri uri = new Uri(inputFileUrl);
    client.DownloadFile(uri, outputFile);
}
catch (Exception ex)
{
    throw;
}

Un autre moyen est d'utiliser un utilitaire de ligne de commande (wget) pour télécharger le fichier et le feu de la commande à l'aide ProcessStartInfo et l'utilisation du Processus de WaitForExit(int ms) pour forcer la sortie.

ProcessStartInfo startInfo = new ProcessStartInfo();
//set startInfo object

try
{
    using (Process exeProcess = Process.Start(startInfo))
    {
        //wait for time specified
        exeProcess.WaitForExit(1000 * 60 * 60);//wait till 1m

        //check if process has exited
        if (!exeProcess.HasExited)
        {
            //kill process and throw ex
            exeProcess.Kill();
            throw new ApplicationException("Downloading timed out");
        }
    }
}
catch (Exception ex)
{
    throw;
}

Est-il un meilleur moyen? S'il vous plaît aider. Merci.

Quel est l'uri? est-il ftp?

OriginalL'auteur hIpPy | 2010-02-15