[解決済み] 非同期メソッドに値を返させるには?
2023-08-09 18:48:54
質問
非同期メソッドの作り方は知っていますが、例えば、多くの処理を行い、その後ブール値を返すメソッドがあるとします。
コールバックでboolean値を返すにはどうしたらいいですか?
明確な説明 :
public bool Foo(){
Thread.Sleep(100000); // Do work
return true;
}
これを非同期でできるようにしたい。
どのように解決するのですか?
いくつかの方法があります...最もシンプルなのは、非同期メソッドに後続の操作も行わせることです。もう一つの一般的な方法は、コールバックを渡すことです、つまり
void RunFooAsync(..., Action<bool> callback) {
// do some stuff
bool result = ...
if(callback != null) callback(result);
}
もう一つの方法は、非同期処理が完了したときにイベント(event-argsのデータに結果を含む)を発生させることです。
また、TPLを利用している場合は
ContinueWith
:
Task<bool> outerTask = ...;
outerTask.ContinueWith(task =>
{
bool result = task.Result;
// do something with that
});
関連
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み】プロセスが実行されているかどうかを知るには?
-
[解決済み] enumを列挙するには
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] どうすればjQueryに非同期ではなく、同期のAjaxリクエストを実行させることができますか?
-
[解決済み] C#で同期メソッドから非同期メソッドを呼び出すには?
-
[解決済み】非同期プログラミングとマルチスレッドの違いは何ですか?
-
[解決済み】メソッドの戻り値の型を汎用的にする方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C#におけるtypedefの等価性
-
[解決済み】Sequence contains no matching element(シーケンスにマッチする要素がない
-
[解決済み】取り消せないメンバはメソッドのように使えない?
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み】Moqを使用してメソッド呼び出しを検証する
-
[解決済み】5.7.57 SMTP - MAIL FROMエラー時に匿名メールを送信するためにクライアントが認証されない
-
[解決済み】Linq 構文 - 複数列の選択
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み】 C# 条件演算子エラー 代入、call、increment、decrement、await、new object 式のみ文として使用可能です。
-
[解決済み】インデックスが範囲外でした。コレクションパラメータname:indexのサイズより小さく、非負でなければなりません。