2010-09-03 3 views
1

Je HttpWebRequest une application qui va télécharger les fichiers de mon client vers un serveur Web en utilisant HttpWebRequest (avec la fonction proposée ici: Upload files with HTTPWebrequest (multipart/form-data))Win formulaire de demande de gel post fichier

Mon problème est que lorsque le fichier (environ 10 Mo de taille) est en cours de publication l'ensemble de l'application se fige (par exemple, "l'application ne répond pas" lorsque je tente de déplacer la fenêtre).

Dois-je mettre le téléchargement dans un fil séparé, ou y a-t-il un moyen simple de résoudre ce problème?

Répondre

2

Jetez un oeil à la classe BackgroundWorker. Votre interface utilisateur se bloquera pendant une opération, sauf si vous l'exécutez dans un fil distinct. En utilisant BackgroundWorker, vous pouvez exécuter votre code dans l'événement DoWork et l'interface utilisateur restera active.

1

La programmation multithread est la voie à suivre dans ce cas.

Vous pouvez créer un délégué pour une fonction qui téléchargera le fichier et utilisera BeginInvoke pour exécuter la fonction dans un thread séparé.

Ou vous pouvez simplement créer un nouveau thread en utilisant la classe Thread et le .net ThreadPool.