[過去ログ] ふらっと C#,C♯,C#(初心者用) Part141 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
432
(3): 2020/05/07(木)11:08 ID:uSRgeDXp(8/11) AAS
>>431
ありがとうございました。
ダウンロード終了を待たないとそりゃ中身0バイトでしょの一言が貴重でした

ちなみにですが、

外部リンク[html]:dobon.net
「.NET Framework 2.0以降で、非同期的にファイルをダウンロードし保存する」
で紹介されているC#のコードですが、ここではawaitが出てこない
その理由は、
コンソールアプリと違ってフォームを表示しているメインのスレッドは勝手に終了しないから
という理解でよいでしょうか?
省2
435
(1): 2020/05/07(木)12:24 ID:K/pi2iFO(2/2) AAS
>>432
DownloadFileAsyncとDownloadFileTaskAsyncは別物よ
そもそも.NET Framework 2.0時代にはTaskは存在しないし当然awaitなんてのも存在しない
DownloadFileAsyncはイベントベースで完了を待つ(ことができる)もの
まあフォームアプリの場合通常はフォームが閉じない限りプロセスは終わらないんだから必ずしも明示的に待つ必要はないわけで
でもある程度大きいファイルをDLすることを考えると
DL中にフォームが閉じられた(プロセスが終了した)ときに打ち切られるのは変わらないから
必要に応じてDL中はFormClosingで閉じるのをキャンセルしたりする処理を書かないといけない
437
(2): 2020/05/07(木)13:46 ID:uSRgeDXp(10/11) AAS
>>435
一番知りたいのはフォームアプリとコンソールアプリでなぜこのような違いがでるのかっていう点ですね
それについては>>432の理解でよいのでしょうか
前半は肯定してもらったのですが、後半はどうでしょうか

>DownloadFileAsyncはイベントベースで完了を待つ(ことができる)もの
DownloadFileTaskAsyncでもcompletedイベントハンドラが動きました

とここまで書いて一発で疑問を解決してくれるコードを発見です

static void Main(string[] args)
{
var url1 = new Uri("外部リンク:tekitou
省12
438
(1): 2020/05/07(木)14:18 ID:qpGBsCgy(3/6) AAS
>>432
その認識で良いよ。
メインスレッドは終わらないからで大丈夫だと思う。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.050s