問題タブ [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.
.net - 重要なコードを新しい.NET非同期パターンに変換する-yieldループを処理する方法
AzureTableStorageで動作するライブラリを作成しています。基本的なパターンは、特定のHTTPリクエストがコンテンツストリームに数値の結果を返し、ヘッダーに次の結果のセットへのポインタを返すというものです。結果がストリームから読み取られると、結果が生成されます。System.Net.Httpライブラリ(以前のMicrosoft.Net.Http)を使用しています。このライブラリは、最新バージョンでHttpClient.Sendの同期バージョンやその他の同期メソッドを削除しました。新しいバージョンはタスクを使用します。私は以前にタスクを使用しましたが、これほど複雑なものには使用していません。開始するのに苦労しています。
非同期パターンに変換された呼び出しは、HttpClient.Send、response.Context.ContentReadSteamです。重要な部分が表示されるようにコードをクリーンアップしました。
私が正常に変換したものの例を以下に示します。
ループ/イールドを新しいパターンに変換する方法について誰か提案がありますか?
ありがとう!エリック
.net - メソッドからIEnumerableとしてBlockingCollectionを返す
BlockingCollectionによってサポートされているメソッドからIEnumerableを返そうとしています。コードパターンは次のとおりです。
問題は、Execute()から返される列挙型が常に空であるということです。私が見た例はすべて、タスク内のBlockingCollectionを繰り返します。この状況では機能しないようです。
誰かが私がどこで間違っているのか知っていますか?
もう少し明確にするために、コレクションにデータを入力するために実行しているコードを貼り付けています。おそらくここで問題を引き起こす何かがありますか?
c# - ASP.NET MVC 4 Beta と Async CTP (バージョン 3) を並べて表示
最初に Async CTP (バージョン 3) をインストールし、次に ASP.NET MVC 4 Beta をインストールしました。ただし、async キーワードは使用できません。
互換性の問題はありますか?
ASP .NET MVC 3 についても同様の質問があります(この記事の執筆時点では回答がありません)。
編集: async/await キーワードは、インストールする前に壊れている可能性があります。(現在も調査中です。)
c# - アプリの廃棄時にバックグラウンド タスクを適切に処理する
私は async ctp を使用しており、バックグラウンドで実行されるタスクがあります。うまく機能しますが、実行中にアプリが廃棄されたときに例外がスローされます。この例外は、データベース コンテキストが null であることに関連しています。
ドキュメントは言う:
アプリケーションが廃棄されると、基になるデータベース接続が閉じられます。廃棄後に以前の状態に戻るには、アプリケーションは、廃棄される前に実行したすべてのクエリをやり直す必要があります。
canceltokesource を使用してみましたが、接続が既に閉じられているため、これは機能しないようです。このようなものを処理する方法はありますか?
c# - 大きなスレッドプールを使用する代わりに、非同期リクエストを使用するのはなぜですか?
ここオランダで開催された Techdays で、Steve Sanderson がC#5、ASP.NET MVC 4、および非同期 Webについてプレゼンテーションを行いました。
彼は、リクエストが完了するまでに時間がかかると、スレッドプールのすべてのスレッドがビジー状態になり、新しいリクエストを待たなければならなくなると説明しました。サーバーは負荷を処理できず、すべてが遅くなります。
彼は次に、非同期 Web リクエストを使用するとパフォーマンスが向上することを示しました。これは、作業が別のスレッドに委任され、スレッドプールが新しい受信リクエストに迅速に応答できるためです。彼はこれをデモし、50 の同時リクエストが最初に 50 * 1 秒かかったことを示しましたが、非同期動作では合計で 1.2 秒しかかかりませんでした。
しかし、これを見た後、私はまだいくつかの質問があります。
より大きなスレッドプールを使用できないのはなぜですか? async/await を使用して別のスレッドを起動するのが遅くなっているのではなく、最初からスレッドプールを増やしていませんか? 私たちが実行しているサーバーが突然スレッドを増やしたり、何かを取得したりするようなものではありませんか?
ユーザーからの要求は、非同期スレッドが終了するのをまだ待っています。プールからのスレッドが何か他のことをしている場合、「UI」スレッドはどのようにビジーに保たれますか? Steve は、「何かがいつ終了したかを知るスマート カーネル」について言及しました。これはどのように作動しますか?
c# - async await キーワードのエラー
AsyncCtpLibrary v.3 を追加しました。非同期 Web ページからサンプル コードを取得しました。それを TestFixture でラップして、いじってみました。
エラーが発生しました:理由は何ですか?
エラー 1 - クラス、構造体、またはインターフェイス メンバー宣言の無効なトークン 'void'
エラー 2 - ; 期待される
コード:
.net - 非同期メソッドで例外をテストする方法
VisualStudio11ベータ版で遊んでいます。
このコードを考えると:
これは非同期メソッドであるため、呼び出し元のメソッドに例外が発生することはないようです。したがって失敗するテストケースがあります。
この場合、ExecuteNonQueryの検証部分は明らかに例外をスローしており、デバッグするとスローされることがわかります。
testメソッドをasyncに変更し、構文をTask.Run(()=> Target.ExecuteNonQuery())を待機するように変更しました。
質問:
- ExecuteNonQueryは例外をスローしますか?
- ExecuteNonQueryFail1に例外が表示されないのはなぜですか?
- メソッドの非同期性を放棄することなく、例外を適切に処理してテストケースに合格するように、テストメソッドまたはメソッド自体を変更するにはどうすればよいですか?
c# - 非同期CTPを使用した単一機能の非同期HTTPPOSTデータ
非同期CTPを使用して、非同期を実行して値を返す単一の関数を作成しようとしています。
これが私のサンプルコードです。なぜそれがリターン時に「resp」変数を満たさないのかわかりません。
また、これを試しましたが、プログラムがフリーズしました(しばらくの間だけでなく、それ以上何もしません)。多分どんな修正でも役立つでしょう。
c# - 値を返すと非同期 CTP メソッドがフリーズする
値を返す非同期メソッドを作成しようとしています。リターンなしでメソッドを使用すると、すべてが機能します。データを処理できますが、return 句を追加すると問題が発生します。プログラムはエラーなしで完全にフリーズするか、しばらくの間フリーズします。
コードを見てください:
c# - VS11のWebClient.DownloadStringTaskAsync(Uri、CancellationToken)はどこにありますか
非同期CTPには、署名付きの拡張メソッドがあります
これはVS11のどこにありますか?
このメソッドを取得するには、非同期CTPをインストールする必要がありますか?