[過去ログ]
ふらっと C#,C♯,C#(初心者用) Part138 (1002レス)
ふらっと C#,C♯,C#(初心者用) Part138 http://mevius.5ch.net/test/read.cgi/tech/1528194762/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
196: デフォルトの名無しさん (ワッチョイ c29d-zq67) [sage] 2018/06/18(月) 03:16:27.74 ID:tq92Vuqu0 >>180 >Task Fuga() { } はコンパイルすらできない それは戻り値のチェックで、int Fuga...でもコンパイルできないだろ Taskもasync/awaitも関係ない話 むしろ、async Task Hoge() { } がタスク戻さないのにコンパイル通ることのほうが問題じゃね つかほんとにこれ警告だけで通って正常に動くの? そのときHoge()で何が帰ってきてるんだ? http://mevius.5ch.net/test/read.cgi/tech/1528194762/196
198: デフォルトの名無しさん (ワントンキン MMe1-qG2Q) [sage] 2018/06/18(月) 07:05:52.53 ID:5zfP7m4zM >>196 最適化してCompletedTaskでも返すのかなとも思ったけど IL見ると他と同じようにコード生成して実行してんね このオーバーヘッドが必要な処理なら警告を無視してasync使えばいいと思う http://mevius.5ch.net/test/read.cgi/tech/1528194762/198
204: デフォルトの名無しさん (ワッチョイ c251-G00F) [sage] 2018/06/18(月) 18:39:23.10 ID:rGsHjxJX0 >>196 > むしろ、async Task Hoge() { } がタスク戻さないのにコンパイル通ることのほうが問題じゃね > つかほんとにこれ警告だけで通って正常に動くの? > そのときHoge()で何が帰ってきてるんだ? 確かに一見すると不思議ですよね。 このあたりの詳しい話は TaskAwaiter で検索するとお知りいただけると思います。 >>197 >>201 > await Task.CompletedTask >>162 に書いていただいていることを仰っているのだと思いますが、 >>162 は >>161 の方法の不味さを説明するために await Task.CompletedTask を 引き合いに出されただけで、実際にこの方法を推奨されているわけではないと思います。 私自身も、async Task Hoge() { } と Task Hoge() => Task.CompletedTask; は それぞれメリットがあるのに対して sync Task Hoge() => await Task.CompletedTask; は すべての面で上 2 つに劣っていると考えておりますが、いかがでしょうか。 >>198 > 最適化してCompletedTaskでも返すのかなとも思ったけど > IL見ると他と同じようにコード生成して実行してんね 大変ためになる情報をどうもありがとうございます。 私も確認してみましたが、async Task Hoge() { } と Task Hoge() => Task.CompletedTask; との間にこれだけ IL のコードに差があると 前者を使うのは躊躇してしまいますね。そもそも私は > このオーバーヘッドが必要な処理 になる状況が分からず、CompletedTask を返すように最適化が行われるべきだと思うのですが、 「await なしの async」と「CompletedTask 返し」との間の違いに気づいていらっしゃるようであれば ぜひお教えいただけないでしょうか。 http://mevius.5ch.net/test/read.cgi/tech/1528194762/204
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.027s