問題タブ [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.

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

c# - voidを返すこととTaskを返すことの違いは何ですか?

さまざまなC#非同期CTPサンプルを見ると、を返す非同期関数とvoid、非ジェネリックを返す非同期関数がありTaskます。Task<MyType>非同期操作が完了したときにaを返すことが呼び出し元にデータを返すのに役立つ理由はわかりますが、returnタイプの関数はTaskデータを返しません。戻ってみませんvoidか?

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

mstest - 非同期 CTP v3、MS テスト、および Thread.Sleep

Sleepを使用して、長時間実行されるタスクメソッドがあります

これは私のテストで呼び出され、正常に動作します

ただし、 async/await を使用すると、テストはすぐに失敗します

それはなぜですか?

0 投票する
0 に答える
113 参照

asp.net-mvc-3 - Async CTP (バージョン 3) は ASP と併用できますか。MVC3?

上記の質問に関して矛盾する情報があるようですが、Async CTP のバージョン 3 のリリースにより、MVC3 と Async は共存できますか?

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

c# - 可能であれば async / await を省略すべきですか?

実行に時間がかかるメソッドがあります。DB を呼び出し、特定の計算を同期的に行います。

「await」キーワードを使用して WinForms UI から使用できるように、ラッパーを作成したいと考えています。これを行うために、別のメソッド MyResultAsync を作成します。正確にどのように書くか、私には選択肢があります:

では、どのオプションが望ましいのでしょうか?またその理由は? ご覧のとおり、違いは「async」キーワードと「await」キーワードの有無だけです。

ありがとうございました!

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

c# - 複数のタスクまたは IProgress部分的な完成のため?

3 つのステップで完了し、完了する前に部分的な結果を返す非同期操作を使用しています。awaitもともとはイベントを使用して進行状況を通知していましたが、可能な操作 (またはそれらのチェーン)として適切にラップしたいと考えています。

正確には、Windows Phone 7 の PhotoCamera.CaptureImage メソッドであり、次の順序でイベントを発生させます (関連する結果の種類を使用)。

  1. CaptureStarted、私にはそれほど興味深いものではありません
  2. CaptureThumbnailAvailable(ストリーム)
  3. CaptureImageAvailable(ストリーム)
  4. CaptureCompleted(ブール値)

これどうやって包むの?現在、私は を使用してTaskCompletionSourceを呼び出しSetResultていCaptureCompletedます。サムネイルと画像が利用可能になる手順 2 と 3 については説明しません。代わりにコールバックを使用することにしました。

私の拡張方法(簡潔にするためにコードを省略):

タスクとコールバックが混在しているため、これは完全にクリーンではありません。私は知っていIProgress<T>ます。ただし、進行状況の値は均一な型 (Stream、Stream、bool) ではありません...そして、IProgress<T>パターンが伸びすぎませんか?

Task<T>順番に待機している複数を使用することはオプションですが、それは、何らかの方法で強制する必要がある特定の順序を想定しています。おそらく、各タスクの結果には、メンバーとして「次の」タスクが含まれる可能性があります。

私はまだここでやや的外れだと思っています。アイデア?

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

c# - プロセッサの数は、ASP.NET MVC 4 Web アプリケーションの非同期スレッドのパフォーマンスに影響しますか?

私は非同期プログラミングが苦手なので、質問は低レベルかもしれません。

ASP.NET MVC 4 Dev で Async CTP を使用して、以下の非同期メソッドを作成しました。プレビュー:

コードは問題なく動作します。デスクトップ アプリ (たとえば、WPF アプリ) で同じ関数を実行すると、明確なパフォーマンスの違いが見られます。UI はブロックされず、データは利用可能になると即座に画面にプッシュされます。

しかし、Web アプリケーションでは、実際には違いがわかりません。sync と同じ関数も作成しましたが、どちらもほぼ同じです。

私が知りたいのは、次のことです。

  1. Intel Core 2 Duo CPU T5750 2.00GHzを搭載したマシンでこのアプリを実行しています。プロセッサの数は C# の非同期スレッドのパフォーマンスに影響しますか?
  2. ここで Web アプリケーションの観点から何か間違ったことをしていますか?
0 投票する
1 に答える
2181 参照

async-ctp - C# 5.0 の非同期ジェネリック デリゲート

イテレータを使用すると、次の一般的なデリゲートが可能です。

C# 5.0 CTP の新しい async/await を使用すると、次のように類似のデリゲートを作成できると期待しています。

この点に関して、C# 5.0 の仕様やヘルプが見つかりません。これをどのように書くことができるか、または書くことができないかどうか、そしてその理由を知っている人はいますか?

ありがとう!

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

c# - 非同期プログラミングの問題

最近CTPAsyncLibraryを発見し、新しい概念に慣れるためにおもちゃのプログラムを書いてみたかったのですが、問題が発生しています。

コードを書き出す必要があると思います

しかし、そうではありません。これが私が実行しているコードです:

何か案は?誰かが概念を示すいくつかの良いチュートリアルやビデオを知っていれば素晴らしいでしょう。

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

pattern-matching - 非同期メソッドでの「反復」

非同期CTPに関するいくつかの関連する質問:

  • と列挙子メソッドを使用して、イテレータブロック(IEnumerable<T>yield-returning T)を反復処理できます。メソッドのアナログは何ですか?非呼び出しメソッドでedアイテムを受信して​​処理するにはどうすればよいですか?簡単な例を教えてください。私はそれを見ていません。GetEnumerator()MoveNext()Current()asyncasyncawaitContinueWith()

  • また、この次の例のasyncメソッドでMyAwaitableは、GetAwaiter()メソッドがあります。GetAwaiter()を返すstringTHuhそうでない場合string、コンパイラは文句を言いません。THuhとの間にどのようなタイプの制約/期待が存在しGetAwaiter()ますか?

    /li>
  • C#仕様ドラフトの次の行を説明してください。決して使用されないasync Task<T>メソッドが想定されreturnていますか?default(T)このルールに従わないように見えるサンプルがいくつかあります。戻り値は到達可能であり、値はデフォルトではありません。この値にアクセスできませんか?もしそうなら、なぜ厄介なアクセスできないreturnステートメントですか?

Task<T>一部のreturn型の非同期関数ではT、returnステートメントに暗黙的にに変換可能な式がT必要であり、本体のエンドポイントに到達できない必要があります。

  • 仕様には、「GetAwaiter、IsCompleted、OnCompleted、およびGetResultのすべてが「非ブロッキング」であることが意図されている」と記載されています。したがって、(潜在的に)長時間実行される操作をどのメソッドで定義する必要がありますか?

ありがとう!

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

c# - 非非同期メソッドから非同期メソッドを呼び出す

私が試した次のコードのすべてのバリエーションは機能しDoSomething() : voidませDoSomething() : Taskん。表示されるエラーには、 、、およびが含まれます。TaskEx.RunEx().GetAwaiter().GetResult()"Start may not be called on a task with null action""RunSynchronously may not be called on a task unbound to a delegate""The task has not yet completed"

出力:

DoSomething を開始しています...

終了するには、任意のキーを押します。

PrepareAwaitableのは後でより複雑になりますTaskActionこのアクションが完了すると、時間がかかりますが、 (または他のフレームワークメカニズム)が x に割り当てられ、その後 y にTask割り当てられることによって再開されると思います。"Howdy ..."私が本当にやりたいことは、待機中のオブジェクトをインターセプトし、それらを処理し、後で制御して、結果 ( xand y) で継続を再開することです。しかし、私はその大きな一歩を踏み出すことができなかったので、小さな一歩から始めようとしています.