問題タブ [async-ctp]
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 / awaitキーワードで最新のCTP5を使用して、コンパイルできないと思われるコードを記述しました。
「'await'演算子は、'async'修飾子エラーでマークされたメソッドまたはラムダでのみ使用できます」の理由は何ですか?(Visual Studioが指す行を選択しました)
c# - TaskCompletionSource なしのタスク チェーン?
一部の async/await コードをチェーン タスクに変換しているので、リリースされたフレームワークで使用できます。待機コードは次のようになります
どこ
によって生成されたタスクをチェーンInvoke
して返すことを望んでいましたが、結果は. 私が最終的に解決した解決策は、私のシグナルとしてです:Memorize
Memorize
Task<Task<TraumMessage>
TaskCompletionSource<TraumMessage>
なしでこれを達成する方法はありTaskCompletionSource
ますか?
silverlight-4.0 - webClient.DownloadStringTaskAsync()。Wait()がUIをフリーズします
私はSilverlight4と新しい非同期CTPを使用しています。
このコードにより、UIがフリーズします。
一方、このコードは正常に機能します:
2つの違いは何ですか?最初の1つがフリーズする原因は何ですか?
c# - タスクを待機可能にする方法
昨日、Microsoft CTP 非同期ライブラリを使い始めましたが、待機可能なタスクの適切な実装がどこにも見つかりませんでした。私はそれがこのような実装を持っている必要があることを知っています?:
しかし、たとえば 5 秒間待機して、"Hello World" などの文字列を返すタスクを実装するにはどうすればよいでしょうか。
1 つの方法は、次のように Task を直接使用することです。
しかし、待機可能な実装でそれを行うにはどうすればよいでしょうか? それとも、すべてを誤解しただけですか?
情報/ヘルプをありがとう:)
c# - C# Async CTP で「待機中」のスレッドはどうなりますか?
私は新しい asyncawait
キーワードについて読んでいて、それは素晴らしいように聞こえますが、これまでに見たどの紹介ビデオでも答えを見つけることができなかった重要な質問が 1 つあります (ホワイトペーパーも読みました)。ちょっと前)。
await
メイン UI スレッドのネストされた関数で呼び出しがあるとします。この時点でスレッドはどうなりますか?制御はメッセージ ループに戻り、UI スレッドは自由に他の入力を処理できますか?
待機中のタスクが完了すると、スタック全体がメッセージ キューにプッシュされ、ネストされた各関数を介して制御が返されますか?それとも、ここで何か別のことが完全に発生していますか?
第二に (注意を喚起している間)、非同期メソッドに というラベルを付ける必要がある理由がよくわかりませんasync
。非同期で実行できるメソッドはありませんか? メソッドを非同期で実行したいが、 async キーワードがない場合はどうすればよいですか? 簡単に実行する方法はありますか?
乾杯。:)
編集: 確かに、サンプルコードをコンパイルできれば、おそらく自分でそれを理解できるでしょうが、何らかの理由でブロックに遭遇しています。私が本当に知りたいのは、継続がどの程度継続するかです...コールスタック全体をフリーズして、タスクが完了したときに再開しますか、それともそれまでに戻るだけですか? 継続をサポートするために、関数自体を非同期としてマークする必要がありますか、それとも (最初に尋ねたように) コール スタック全体を継続しますか?
コール スタック全体がフリーズしない場合、async await が非非同期呼び出し関数にヒットするとどうなりますか? そこでブロックしますか?それはawaitのポイントを打ち負かしませんか?ここで私が理解していないことがわかると思います.誰かが記入してくれることを願っています.
c# - C# async CTP - TaskCanceledException をスローせずに非同期タスクをキャンセル済みとしてマークするにはどうすればよいですか?
開始後に頻繁にキャンセルする必要がある短い非同期タスクがあります。「タスク」クラスには IsCanceled インジケーターがあり、非同期タスクが実行を完了せずにキャンセルされたことを示すのに便利だと思いますが、非同期タスクをキャンセル済みとしてマークする唯一の方法は非同期関数で TaskCanceledException をスローします。例外なく発生する状況を示すために、日常的に例外をスローすることは、例外を使用する必要があると私が理解している方法に反します。非同期タスクが頻繁に発生すると予想される場合に、非同期タスクをキャンセルすることを示すより良い方法を知っている人はいますか?
私の次善の策は、独自の IsCanceled プロパティを持つ構造体を返すことです。
(ここでは簡潔にするために、いくつかの優れたコーディングとスタイルの実践を無視しています)
しかし、これは冗長で使いにくいようです。IsCanceled が 2 つ (Task に 1 つ、MightBeCanceled に 1 つ) あるため、一貫性の問題が発生することは言うまでもありません。
c# - Async CTP、ViewModel の非同期メソッドの単体テスト
次のような単体テスト(MSTestを使用)があります。
Run は void を返す非同期メソッドです。
Run
次のように実装されているとしましょう:
myAsyncModelClass.LongRunningOperation()
、それ自体は非同期メソッドでTask<T>
あり、T は ViewModel が関心のある結果です。
私の問題は、テストがメソッドを非同期で実行しているため、メソッドが完了Run
する前にアサーションが呼び出されることです。Run
アサーションが失敗するため、ブレークポイントを設定しても、最終ブロックに到達しないのは奇妙です。Run
メソッドを単体テストできるように同期を維持するにはどうすればよいですか?
の単体テストもありますが、タスクを返すのmyAsyncModelClass.LongRunningOperation()
で呼び出すだけです。Task<T>.Wait()
これにより、単体テスト時に同期が行われます。
また、言及したいのはRun()
、MVVM フレームワークによって魔法のように ICommand によって呼び出されることです。 void
戻り型が必要な場合とそうでない場合があるため、試してみる必要があります。
c# - C#の新しい非同期機能を使用してネットワークパケットを待機するための最良の方法は何ですか
最近、新しい非同期CTPをいじってみましたが、どうすればよいかわからないという状況に遭遇しました。
現在のコードベースでは、「ジョブ」と「ジョブマネージャー」の概念を使用しています。ジョブは、最初のメッセージを処理し、応答を送信して、応答を待機することのみを目的として存在します。
ネットワークスレッドがデータの到着を待機し、それをイベントハンドラーに渡し、最終的にはジョブマネージャーに渡す、同期ソケットに基づく既存のコードがすでにあります。
ジョブマネージャは、メッセージを処理するジョブを探し、メッセージを渡します。
したがって、シナリオは次のとおりです。
- ジョブマネージャは新しいメッセージを受け取り、ジョブを起動します。
- ジョブが開始され、メッセージが処理され、応答メッセージが送信されます。
- この時点で、ジョブは応答への応答を待ちます。
擬似コードの例を次に示します。
しかし、ステップ3でどのように進めるかは完全にはわかりません。ジョブマネージャーは応答を取得し、実行中のジョブに渡します。しかし、ジョブに応答を待たせる方法がわかりません。
WaitHandleをブロックするだけの待機中のタスクを作成することを検討しましたが、これが最善の解決策ですか?
この場合、他にできることはありますか?
編集 非同期CTPに関して、UIが使用されていない状況で何が起こるか。Eric LippertのAsyncブログを読んだことがありますが、UIスレッドなしですべてがバックグラウンドでどのように機能するかというテーマに触れたことはないと思います(バックグラウンドワーカーからスピンオフするのでしょうか...?)
azure - 非同期 CTP と Windows Azure のサポート
簡単な質問です。グーグル経由で答えが見つかりませんでした...
Windows Azure プラットフォームは Async CTP をサポートしていますか?
参照のコピーの問題ですか?
.net - 突然VB.Netイテレータ関数がコンパイルされませんか?
ここ数ヶ月、AsyncCTPItheを使用して正常にコンパイルされました。
突然、これはもはや当てはまりません。Visual Studioは、構文を認識せず、「EndofStatementExpected」で関数を波打つように見えなくなりました。
最近、私のマシンはVisual Studioを開いたまま(恥ずかしいことですが)オンのままになり、いくつかのWinowsアップデートをインストールするために自動的にシャットダウンされました。それ以来、私はソリューションをコンパイルすることができませんでした。2週間前の時点で、ソリューションのバックアップコピーにアクセスしました。これは、何かがうまくいかず、同じ問題が発生していないことを確認するためです。
.Net FrameworkAsyncCTPもアンインストールして再インストールしてみました。
私の知る限り、最近、いくつかの> netFramework4アップデートとセキュリティアップデートを受け取りました。
他の誰かがこれに光を当てて、MSとの電話で無駄な一日を節約できることを願っています。