問題タブ [async-await]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
13151 参照

c# - Async CTP - async/await を使用して wcf サービスを呼び出すにはどうすればよいですか?

WCF サービス メソッドを呼び出すと、次のようになります。

async新しいctpを使用して同じことを行うにはどうすればよいですか? またはのようなものが必要だと思いますproxy.DoSomethingTaskAsyncproxy.DoSomethingAsync().ToTask()?Web サービス呼び出しは、キーワードTask<T>を使用できるようにするためにを返す必要がありますが、どのように??await

0 投票する
2 に答える
3673 参照

c# - 非同期CTPの`TaskEx.WhenAll`とは何ですか?

メソッド内で渡されるすべてのタスクが終了すると、TaskEx.WhenAllが返されると思いました。したがって、TaskEx.WhenAllがReturnステートメントの配列を返すのを待ちます。これにより、すべてのオブジェクトが終了すると、配列が返されます。

しかし、そうではありません。私がする時 :

MessageBoxが複数回表示され、1つの要素の配列、次に2つの要素の配列というようにステップインするのを待っています。

TakEx.WhenAllの性質を正確に教えてもらえますか?

0 投票する
1 に答える
1007 参照

c# - テスト駆動の非同期タスク

私は一般的なトピックに関する一般的な考えやリンクを探していますが、現時点での私の特定の動機は、BackgroundWorkerおよび/またはTPLのいずれかを使用した進捗レポートに関連するUIタスクです。非同期プログラミング全般に関する私の経験レベルは初心者です。私が最もよく知っているテストツールは、NUnitとRhinoです。

私の頭のてっぺんからいくつかのブレインストーミングのアイデア:

  1. 気にしないでください。複雑すぎて、BGWまたはTPLをテストするだけです。
  2. ある種の偽物やモックを作ります。
  3. EventWaitHandlesを使用する
0 投票する
1 に答える
16587 参照

c# - task.Wait が例外をスローする

主に、この質問のテスト駆動型非同期タスクのフォローアップとして、タスクを待機させない場合は機能するが、待機させると失敗するコードを考え出しました。

誰でも理由を説明できますか?

例外:

Stephen Cleary が彼のブログで書いたユーティリティ クラスのコンストラクターにコードがヒットすると、このエラーが発生します。

テスト (NUnit w/ TestDriven.Net ランナー):

SuT:

明確にするために: task.Wait をコメントアウトすると、そのテストは実際に成功します。何故ですか?

余分なポイント:

これは技術的には別の質問であることは知っていますが、これをすべて繰り返すのは残念です。

テストでは MockSynchContext が TaskScheduler.FromCurrentSynchronizationContext() で例外をスローしなかったのに、2 番目のタスクでは例外をスローしたのはなぜですか? さらに重要なのは、テストを適切に実行できるようにコンテキストを渡す方法はありますか?

0 投票する
2 に答える
653 参照

c# - CPU を集中的に使用しないタスクに await を使用する

私はこのようなものを持っています:

CPUにあまり当たらないので、スレッドはいらないです。スレッドの作成を回避するには、Run の代わりに何を使用できますか?

0 投票する
4 に答える
2091 参照

c# - c# async await の実装

C# の今後の async/await 機能の設計について、いくつか疑問があります。

  1. 新機構搭載の利便性Task<T>
  2. await キーワードの代わりに async を使用する方が良いと思います。例として:var result = async GetResultAsync();
  3. トークンを使用して進行中の非同期操作をキャンセルするメカニズムは、私が思うほどエレガントではありません。

Async/away は素晴らしい機能ですが、LINQ ほどうまく設計されていないと思います。また、設計チームは現在の設計に危険なほど満足しているように感じます。コミュニティからのフィードバックを考慮していない可能性があります。

どう思いますか?

0 投票する
2 に答える
4909 参照

c# - async/await キャンセル メカニズム

非同期/待機コンテキストのキャンセル トークンの代わりに、進行中の非同期操作をキャンセルするメカニズムについて質問があります。これは、言語の命令型の性質を考慮した十分に研究された設計上の決定であると確信していますが、実際の状況では、すべての非同期メソッドにキャンセル オブジェクトを渡さなければならないのは、少なくとも少し苦痛です。C# コミュニティからの別の設計アイデアがありますか、それとも提案されたキャンセル メカニズムで問題ありませんか? 私は何かが欠けていると思います。

0 投票する
3 に答える
2256 参照

c# - async-await呼び出しのラッパーを作成するにはどうすればよいですか?

私の知る限り、ConnectAsync/ AcceptAsync/ SendAsync/ReceiveAsyncなどの組み込み(またはフレームワーク拡張)サポートはありません。async-awaitメカニズムでサポートされる独自のラッパーを作成するにはどうすればよいですか。たとえば、ReceiveAsynインラインとコールバック(で指定されている)の両方でcを処理する現在のコードSocketAsyncEventArgs

0 投票する
9 に答える
82274 参照

c# - 「yieldreturnDoSomethingAsync()を待つ」ことは可能ですか?

通常のイテレータブロック(つまり「yieldreturn」)は「async」および「await」と互換性がありませんか?

これにより、私が何をしようとしているのかがわかります。

ただし、「リソースからメッセージ文字列を読み込めません」というコンパイラエラーが発生します。

別の試みがあります:

しかし、繰り返しになりますが、コンパイラは「リソースからメッセージ文字列を読み込めません」というエラーを返します。


これが私のプロジェクトの実際のプログラミングコードです

これは、リストタスクがある場合に非常に便利です。そのタスクはURLからHTMLをダウンロードでき、構文「yield return await task」を使用すると、結果が必要になりIEnumerable<Foo>ます。私はこのコードを書きたくありません:

しかし、私はしなければならないようです。

助けてくれてありがとう。

0 投票する
26 に答える
474594 参照

c# - 非同期タスクを実行するにはどうすればよいですか同期的にメソッド?

私はasync/awaitについて学んでいて、非同期メソッドを同期的に呼び出す必要がある状況に遭遇しました。どうやってやるの?

非同期メソッド:

通常の使用法:

私は以下を使用してみました:

ここからも提案を試みましたが、ディスパッチャが一時停止状態の場合は機能しません。

呼び出しによる例外とスタックトレースは次のRunSynchronouslyとおりです。

System.InvalidOperationException

メッセージ:デリゲートにバインドされていないタスクでRunSynchronouslyを呼び出すことはできません。

InnerException:null

ソース:mscorlib

StackTrace