問題タブ [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 投票する
8 に答える
2443 参照

c# - 新しい C# Async 機能のネットワーク化されていない良い例は何ですか?

Microsoft は、新しい C# Async 機能を発表しました。これまで見てきたすべての例は、HTTP から何かを非同期的にダウンロードすることに関するものでした。確かに他の重要な非同期のものがありますか?

新しい RSS クライアントや Twitter アプリを書いているわけではないとします。私にとって C# Async の興味深い点は何ですか?

編集私はAhaを持っていました!Anders の PDC セッションを見ている瞬間。過去に、「ウォッチャー」スレッドを使用するプログラムに取り組んできました。これらのスレッドは、ファイルの変更を監視するなど、何かが起こるのを待っています。彼らは仕事をしておらず、アイドル状態であり、何かが起こるとメインスレッドに通知します。これらのスレッドは、新しいモデルで await/async コードに置き換えることができます。

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

c# - C#で非同期はどのように機能しますか?

Microsoft は本日 (2010 年 10 月 28 日)、非同期メソッド実行のために C#/VB にandキーワードを導入するVisual Studio Async CTPを発表しました。asyncawait

最初は、コンパイラがキーワードをスレッドの作成に変換すると思っていましたが、ホワイト ペーパーと Anders Hejlsberg のPDC プレゼンテーション(31:00) によると、非同期操作は完全にメイン スレッドで行われます。

同じスレッドで操作を並行して実行するにはどうすればよいですか? 技術的にどのように可能であり、IL で実際に翻訳された機能は何ですか?

0 投票する
7 に答える
15238 参照

c# - C# 5.0 の async-await 機能は TPL とどう違うのですか?

C# (および VB) の新しい非同期機能と .NET 4.0 のTask Parallel Libraryの違いはわかりません。たとえば、ここからEric Lippert のコードを見てみましょう:

このawaitキーワードは 2 つの異なる目的を果たしているようです。最初の出現 ( FetchAsync) は、「この値が後でメソッドで使用され、そのタスクが終了していない場合は、完了するまで待ってから続行する」という意味のようです。2 番目のインスタンス ( ) は、 「このタスクがまだ終了していない場合は、完了するまで今すぐarchive待ってください」という意味のようです。私が間違っている場合は、私を修正してください。

こんな風に簡単に書けませんか?

最初の値を実際に値が必要な場所に置き換え、2 つ目を待機が実際に発生awaitしている場所に置き換えました。機能は既に実装されており、意味的にはコードで実際に起こっていることにより近くなっています。Task.ResultawaitTask.Wait()(1)(2)

メソッドがイテレータと同様にステートマシンとして書き直されることは理解していasyncますが、それがもたらす利点もわかりません。動作に別のスレッドを必要とするコード (ダウンロードなど) は別のスレッドを必要とし、別のスレッドを必要としないコード (ファイルからの読み取りなど) は、TPL を利用して 1 つのスレッドのみで動作する可能性があります。

ここには明らかに何か大きなものが欠けています。誰かがこれをもう少しよく理解するのを手伝ってもらえますか?

0 投票する
5 に答える
46362 参照

c# - 新しい C# の await 機能は何をしますか?

関数の機能を説明できる人awaitはいますか?

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

c# - WebClient.DownloadStringTaskAsync() がブロックするのはなぜですか? - 新しい非同期 API/構文/CTP

以下のプログラムの開始後に、何らかの理由で一時停止があります。WebClient().DownloadStringTaskAsync()それが原因だと思います。

私が理解している限り、私のプログラムはすぐに 0 から 15 までのカウントを開始する必要があります。私は何か間違ったことをしていますか?

元の Netflix ダウンロード サンプル ( CTPで取得) でも同じ問題がありました。検索ボタンを押した後、UI が最初にフリーズし、しばらくすると、次の映画の読み込み中に応答します。そして、PDC 2010 での Anders Hejlsberg のプレゼンテーションでは、それは固まらなかったと思います。

もう一つ。代わりに

私は自分の方法を使用します:

それは次のとおりです。

正常に動作します。つまり、何もロードされませんが、すぐに開始され、作業中にメインスレッドをブロックしません。

編集

OK、私が今信じているのは、WebClient.DownloadStringTaskAsync機能が台無しになっているということです。次のように、最初のブロック期間なしで機能するはずです。

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

c# - C# 5.0 の async/await 機能と Rx - Reactive Extensions

C# 5.0 の新しい非同期機能は、Rx - Reactive Extensions にとって何を意味するのでしょうか? 差し替えではないようですが、重複しているようです -TaskIObservable.

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

c# - c#5.0の新しい非同期機能をcall / ccでどのように実装できますか?

私はasyncc#5.0に含まれる新機能に関する新しい発表をフォローしています。私は、継続渡しスタイルと、新しいc#コンパイラがEric Lippertの投稿からのこのスニペットのようなコードに変換することについての基本的な理解を持っています:

一部の言語は、call-with-current-continuation(callcc)を介してネイティブに継続を実装していることは知っていますが、それがどのように機能するのか、または正確に何をするのかはよくわかりません。

だからここに質問があります:アンダースらの場合。弾丸を噛み、/特殊なケースcallccの代わりにc#5.0で実装することにした場合、上記のスニペットはどのようになりますか?asyncawait

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

c# - 新しい async/await を使用した C# の Agent/MailboxProcessor

この質問は、私が完全には理解していない 2 つのトピックを組み合わせたものです

F# の asyncに関する論文を読んで、リアクティブ ステート マシンの実装に使用できる Agents/MailboxProcessors のトピックに出会いました。C#5 の新しい async/await 機能を使用して、C# で同様のものを実装できますか?それとも、より適したアナログが既に存在しますか?

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

c# - バニラ.Net 4上のVisual Studio Async CTP?

私の理解では、C# 5 CTP の新しい Async-Await 機能はすべてコンパイラに実装する必要があります。これは、CTP でコンパイルされたコードがバニラ .Net 4 で実行できることを意味しますか?

それをできる?

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

c# - WCFサービスは他のWCFサービスと非同期を呼び出します

タスクベースの非同期パターンについて読んだことがありますが、それは素晴らしいですね。これで、他のWCFサービスを呼び出す必要があるWCFサービスがあります。これらのサービスは異なる結果を返します。非同期でこれらのサービスを新しいパターンで呼び出し、すべてが完了するのを待つにはどうすればよいですか?