問題タブ [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.
c# - Async CTP - async/await を使用して wcf サービスを呼び出すにはどうすればよいですか?
WCF サービス メソッドを呼び出すと、次のようになります。
async
新しいctpを使用して同じことを行うにはどうすればよいですか? またはのようなものが必要だと思いますproxy.DoSomethingTaskAsync
かproxy.DoSomethingAsync().ToTask()
?Web サービス呼び出しは、キーワードTask<T>
を使用できるようにするためにを返す必要がありますが、どのように??await
c# - 非同期CTPの`TaskEx.WhenAll`とは何ですか?
メソッド内で渡されるすべてのタスクが終了すると、TaskEx.WhenAllが返されると思いました。したがって、TaskEx.WhenAllがReturnステートメントの配列を返すのを待ちます。これにより、すべてのオブジェクトが終了すると、配列が返されます。
しかし、そうではありません。私がする時 :
MessageBoxが複数回表示され、1つの要素の配列、次に2つの要素の配列というようにステップインするのを待っています。
TakEx.WhenAllの性質を正確に教えてもらえますか?
c# - テスト駆動の非同期タスク
私は一般的なトピックに関する一般的な考えやリンクを探していますが、現時点での私の特定の動機は、BackgroundWorkerおよび/またはTPLのいずれかを使用した進捗レポートに関連するUIタスクです。非同期プログラミング全般に関する私の経験レベルは初心者です。私が最もよく知っているテストツールは、NUnitとRhinoです。
私の頭のてっぺんからいくつかのブレインストーミングのアイデア:
- 気にしないでください。複雑すぎて、BGWまたはTPLをテストするだけです。
- ある種の偽物やモックを作ります。
- EventWaitHandlesを使用する
c# - task.Wait が例外をスローする
主に、この質問のテスト駆動型非同期タスクのフォローアップとして、タスクを待機させない場合は機能するが、待機させると失敗するコードを考え出しました。
誰でも理由を説明できますか?
例外:
Stephen Cleary が彼のブログで書いたユーティリティ クラスのコンストラクターにコードがヒットすると、このエラーが発生します。
テスト (NUnit w/ TestDriven.Net ランナー):
SuT:
明確にするために: task.Wait をコメントアウトすると、そのテストは実際に成功します。何故ですか?
余分なポイント:
これは技術的には別の質問であることは知っていますが、これをすべて繰り返すのは残念です。
テストでは MockSynchContext が TaskScheduler.FromCurrentSynchronizationContext() で例外をスローしなかったのに、2 番目のタスクでは例外をスローしたのはなぜですか? さらに重要なのは、テストを適切に実行できるようにコンテキストを渡す方法はありますか?
c# - CPU を集中的に使用しないタスクに await を使用する
私はこのようなものを持っています:
CPUにあまり当たらないので、スレッドはいらないです。スレッドの作成を回避するには、Run の代わりに何を使用できますか?
c# - c# async await の実装
C# の今後の async/await 機能の設計について、いくつか疑問があります。
- 新機構搭載の利便性
Task<T>
- await キーワードの代わりに async を使用する方が良いと思います。例として:
var result = async GetResultAsync();
- トークンを使用して進行中の非同期操作をキャンセルするメカニズムは、私が思うほどエレガントではありません。
Async/away は素晴らしい機能ですが、LINQ ほどうまく設計されていないと思います。また、設計チームは現在の設計に危険なほど満足しているように感じます。コミュニティからのフィードバックを考慮していない可能性があります。
どう思いますか?
c# - async/await キャンセル メカニズム
非同期/待機コンテキストのキャンセル トークンの代わりに、進行中の非同期操作をキャンセルするメカニズムについて質問があります。これは、言語の命令型の性質を考慮した十分に研究された設計上の決定であると確信していますが、実際の状況では、すべての非同期メソッドにキャンセル オブジェクトを渡さなければならないのは、少なくとも少し苦痛です。C# コミュニティからの別の設計アイデアがありますか、それとも提案されたキャンセル メカニズムで問題ありませんか? 私は何かが欠けていると思います。
c# - async-await呼び出しのラッパーを作成するにはどうすればよいですか?
私の知る限り、ConnectAsync
/ AcceptAsync
/ SendAsync
/ReceiveAsync
などの組み込み(またはフレームワーク拡張)サポートはありません。async-awaitメカニズムでサポートされる独自のラッパーを作成するにはどうすればよいですか。たとえば、ReceiveAsyn
インラインとコールバック(で指定されている)の両方でcを処理する現在のコードSocketAsyncEventArgs
:
。
c# - 「yieldreturnDoSomethingAsync()を待つ」ことは可能ですか?
通常のイテレータブロック(つまり「yieldreturn」)は「async」および「await」と互換性がありませんか?
これにより、私が何をしようとしているのかがわかります。
ただし、「リソースからメッセージ文字列を読み込めません」というコンパイラエラーが発生します。
別の試みがあります:
しかし、繰り返しになりますが、コンパイラは「リソースからメッセージ文字列を読み込めません」というエラーを返します。
これが私のプロジェクトの実際のプログラミングコードです
これは、リストタスクがある場合に非常に便利です。そのタスクはURLからHTMLをダウンロードでき、構文「yield return await task」を使用すると、結果が必要になりIEnumerable<Foo>
ます。私はこのコードを書きたくありません:
しかし、私はしなければならないようです。
助けてくれてありがとう。
c# - 非同期タスクを実行するにはどうすればよいですか同期的にメソッド?
私はasync/awaitについて学んでいて、非同期メソッドを同期的に呼び出す必要がある状況に遭遇しました。どうやってやるの?
非同期メソッド:
通常の使用法:
私は以下を使用してみました:
ここからも提案を試みましたが、ディスパッチャが一時停止状態の場合は機能しません。
呼び出しによる例外とスタックトレースは次のRunSynchronously
とおりです。
System.InvalidOperationException
メッセージ:デリゲートにバインドされていないタスクでRunSynchronouslyを呼び出すことはできません。
InnerException:null
ソース:mscorlib
StackTrace: