質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

1回答

523閲覧

C# aysnc awite について

Esdesu

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2021/12/14 12:24

前提・実現したいこと

await Task.Run(async()=>{

関数();
awite Task.Delay(1000);//関数実行後待ちたい←OK?

});

発生している問題・エラーメッセージ

awiteの中にawiteを入れてよいでしょうか。
別の代替案はあるでしょうか。

エラーメッセージ

該当のソースコード

ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2021/12/14 12:35 編集

入れて構いません。コンパイルできないのは綴りが間違っているからです。
退会済みユーザー

退会済みユーザー

2021/12/14 12:51

何か完全に思い違いをしていて迷走している可能性が大なので、そもそも何がしたいのかを書いた方があなたの望む回答が得られるかも。
guest

回答1

0

質問者さんは去ってしまったようですので今更ながらですが、回答を書いておきます。引用の際質問のスペルミスは直しました。

await Task.Run(async()=>{
関数();
await Task.Delay(1000); // 関数実行後待ちたい←OK?
});

await の中に await を入れてよいでしょうか。

await Task.Delay(1000); の await のことだと理解しますが、その行で「関数実行後待ちたい」のであれば、よいです。と言うか、await を付与する他に適当は方法はないと思います。

別の代替案はあるでしょうか。

await Task.Delay(1000); ⇒ Thread.Sleep(3000); とすれば見かけは同じになると思いますが、非推奨だそうです。詳しくは以下の記事の「すべて非同期にする」のセクションを見てください。

非同期プログラミングのベスト プラクティス
https://docs.microsoft.com/ja-jp/archive/msdn-magazine/2013/march/async-await-best-practices-in-asynchronous-programming

async / await の説明については、自分的には以下の記事が分かりやすかったので紹介しておきます。

第2回 非同期メソッドの構文
https://atmarkit.itmedia.co.jp/fdotnet/chushin/masterasync_02/masterasync_02_01.html

記事の抜粋ですが、

"async修飾子は、修飾したメソッド内でawait演算子(後述)を利用するためのキーワードだ。asyncキーワードは単にメソッドの修飾でしかなく、これを加えたことによってコンパイル結果として何かが展開されたりすることはない"

"await演算子の意味は、「待っているタスクがまだ完了していない場合、メソッドの残りをそのタスクの『継続』として登録して呼び出し元に処理を戻し、タスクが完了したら登録しておいた継続処理を実行すること」なので注意が必要だ"

投稿2021/12/16 01:44

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問