一度私はWinForms FTPアップローダを作ったが、うまくいきました。 今、私は新しいプログラムと同じプログラムを作成しようとしていますが、WPFでも非常に整理されたプログラムです。WPFからFTPにアップロードするウィンドウ
WebClient
とUploadFileAsync
[私はWinFormsで行ったように、それは呼び出しスレッドをブロックしません]を使用しようとしましたが、WPFでは、ファイルをアップロードするのではなく、絶対何も起こりませんでした。あたかも何も起こらなかったかのようにプログラムは動き続けました。 私はメソッドUploadFile
[呼び出し元のスレッドをブロックします]を使用しようとしました。だから私はFTPWebRequest
と同じを使用しようとしたが、プログラムはただ凍結する。
WPFがファイルをアップロードする特別な方法はありますか?またはアップロードすることもできますか? 私のコードは問題ないと確信しています。おかげさまで
編集: これはUploadFileAsyncのコードです:
WebClient client = new WebClient();
client.Credentials = new System.Net.NetworkCredential("user", "password");
client.UploadFileAsync(new Uri("ftp://server.com/"), "STOR", "C:\\file.txt");
を試してみてください、それは私が非同期を使用しているとき、あなたは通常AsyncResponseにフック、あなたのコードを見て(もちろん、呼び出し元のスレッドをブロックしないように持つ) – MasterMastic
を好む方法です非同期操作が完了したときに呼び出されるコールバックを渡します(あなたの場合、ファイルがアップロードされています)。上記のコードをどこで実行していますか?つまりViewModelまたはModelのものです –
いいえ、私はこれを使用せず、アップロードしています。 私はこのコードをボタンクリックで実行しています。 – MasterMastic