タグ付けされた質問 「asynchronous」

非同期プログラミングは、通常、ソフトウェアのパフォーマンス、応答性、および/または構成可能性を向上させるために、待ち時間が長いか優先度の低い操作を延期するための戦略です。このような戦略は、通常、イベント駆動型プログラミングとコールバックを組み合わせて使用​​し、オプションでコルーチンやスレッドを介して同時実行性を利用します。

14
警告CS1998を抑制:この非同期メソッドには「待機」がありません
いくつかの非同期機能を備えたインターフェースを持っています。インターフェースを実装するクラスには、待機するものがないクラスもあれば、単にスローするクラスもあります。それはすべての警告で少し迷惑です。 非同期機能でawaitを使用しない場合。 メッセージを抑制することは可能ですか? public async Task<object> test() { throw new NotImplementedException(); } 警告CS1998:この非同期メソッドには「待機」演算子がなく、同期的に実行されます。「await」演算子を使用して非ブロッキングAPI呼び出しを待機するか、「await Task.Run(...)」を使用してバックグラウンドスレッドでCPUにバインドされた作業を行うことを検討してください。
104 c#  asynchronous 


2
RestSharpをasync / awaitで使用する方法
私はRestSharpを使用して、いくつかの非同期C#コードの近代的な例を見つけるのに苦労してるasyncとはawait。私はあります知っているハークによる最近更新されて、私は新しいメソッドを使用する方法がわかりません。 また、操作をキャンセルできるようにキャンセルトークンを提供するにはどうすればよいですか(たとえば、人が待っていることにうんざりしていて、アプリのUIの[キャンセル]ボタンを押した場合)。

5
なぜこの非同期アクションがハングするのですか?
私はC#の新しい使用法呼び出すマルチティアの.Net 4.5アプリケーション持つasyncとawaitそのキーワードだけでハングアップし、私はなぜ見ることができません。 一番下には、データベースユーティリティを拡張する非同期メソッドがありますOurDBConn(基本的には、基になるオブジェクトDBConnectionとDBCommandオブジェクトのラッパー)。 public static async Task<T> ExecuteAsync<T>(this OurDBConn dataSource, Func<OurDBConn, T> function) { string connectionString = dataSource.ConnectionString; // Start the SQL and pass back to the caller until finished T result = await Task.Run( () => { // Copy the SQL connection so that we don't get two commands …

4
コールバックが戻るのを「待つ」方法は?
以下の例のような単純なコールバックを使用する場合: test() { api.on( 'someEvent', function( response ) { return response; }); } async / awaitを使用するように関数を変更するにはどうすればよいですか?具体的には、「someEvent」が1回だけ呼び出されることが保証されていると仮定して、関数testを、次のようにコールバックが実行されるまで返されない非同期関数にしたいと思います。 async test() { return await api.on( 'someEvent' ); }

3
新しいPromise()コンストラクター内でasync / awaitを使用するのはアンチパターンですか?
このasync.eachLimit関数を使用して、一度に最大操作数を制御しています。 const { eachLimit } = require("async"); function myFunction() { return new Promise(async (resolve, reject) => { eachLimit((await getAsyncArray), 500, (item, callback) => { // do other things that use native promises. }, (error) => { if (error) return reject(error); // resolve here passing the next value. }); }); } …


1
ステートメントを使用し、キーワードがC#で適切に再生されるのを待つ
インスタンスasyncを返すメソッドを呼び出す状況がありIDisposableます。例えば: HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com")); さて、以前asyncはシーンでしたが、IDisposableインスタンスを操作する場合、「応答」変数を使用したこの呼び出しとコードは、usingステートメントでラップされます。 私の質問は、asyncキーワードが混在してスローされたときに、それがまだ正しいアプローチかどうかです。コードがコンパイルされても、usingステートメントは以下の両方の例で期待どおりに機能しますか? 例1 using(HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com"))) { // Do something with the response return true; } 例2 using(HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com"))) { await this.responseLogger.LogResponseAsync(response); return true; }

5
非同期シェルコマンド
シェルスクリプトを使用してコマンドを起動しようとしています。それがいつ、いつ、どのように、なぜ終了するかは気にしません。プロセスを開始して実行したいのですが、すぐにシェルに戻れるようにしたいのですが...

8
Task.WhenAllがAggregateExceptionをスローしないのはなぜですか?
このコードでは: private async void button1_Click(object sender, EventArgs e) { try { await Task.WhenAll(DoLongThingAsyncEx1(), DoLongThingAsyncEx2()); } catch (Exception ex) { // Expect AggregateException, but got InvalidTimeZoneException } } Task DoLongThingAsyncEx1() { return Task.Run(() => { throw new InvalidTimeZoneException(); }); } Task DoLongThingAsyncEx2() { return Task.Run(() => { throw new InvalidOperation();}); } …

5
タスクが完了するまで待機しています
DispatchQueueのタスクが完了するまでコードを待機させるにはどうすればよいですか?CompletionHandlerか何かが必要ですか? func myFunction() { var a: Int? DispatchQueue.main.async { var b: Int = 3 a = b } // wait until the task finishes, then print print(a) // - this will contain nil, of course, because it // will execute before the code above } 私はXcode 8.2を使用していて、Swift 3で作成しています。

22
PHPで非同期GETリクエストを行うにはどうすればよいですか?
別のサーバー上の別のスクリプトに対して単純なGETリクエストを作成したいと思います。どうすればよいですか? 1つのケースでは、出力を必要とせずに外部スクリプトを要求するだけです。 make_request('http://www.externalsite.com/script1.php?variable=45'); //example usage 2番目のケースでは、テキスト出力を取得する必要があります。 $output = make_request('http://www.externalsite.com/script2.php?variable=45'); echo $output; //string output 正直なところ、これはCURLの仕事ではないので、CURLをいじりたくありません。また、PECL拡張機能がないため、http_getを使用したくありません。 fsockopenは機能しますか?もしそうなら、どうすればファイルの内容を読み込まずにこれを行うことができますか?他に方法はありませんか? 皆さんありがとう 更新 最初のケースでは、スクリプトが何かを返すのを待ちたくありません。私が理解しているように、file_get_contents()はページが完全に読み込まれるのを待ちますか?
97 php  http  curl  asynchronous 

3
jQuery deferredの「then」メソッドをいつ使用する必要がありますか。「pipe」メソッドをいつ使用する必要がありますか?
jQueryにDeferredは、関数の非同期チェーンを実装するために使用できる2つの関数があります。 then() deferred.then( doneCallbacks, failCallbacks ) Returns: Deferred doneCallbacks Deferredが解決されたときに呼び出される関数または関数の配列。 failCallbacks Deferredが拒否されたときに呼び出される関数または関数の配列。 pipe() deferred.pipe( [doneFilter] [, failFilter] ) Returns: Promise doneFilter Deferredが解決されたときに呼び出されるオプションの関数。 failFilter Deferredが拒否されたときに呼び出されるオプションの関数。 私then()はもう少し長いことを知っているpipe()ので、後者はいくつかの追加の利点を追加する必要がありますが、その違いは正確にはわかりません。名前は異なりますが、a Deferredを返すことPromiseとa を返すことの違いはわずかに見えますが、どちらもほとんど同じコールバックパラメータを取ります。 私は何度も公式ドキュメントを読みましたが、常に「密度が高すぎて」本当に頭を抱えこむことができず、検索で1つの機能または他の機能に関する多くの議論が見つかりましたが、違いを明確にするものは何も見つかりませんでした。それぞれの長所と短所。 それで、いつ使用thenするのが良いのpipeですか、いつ使用するのが良いのですか? 添加 Felixの優れた答えは、これら2つの機能の違いを明確にするのに役立ちました。しかし、の機能がの機能よりthen()も望ましい場合があるのでしょうかpipe()。 pipe()がより強力であることは明らかでthen()、前者は後者ができることは何でもできるようです。使用する理由の1つはthen()、その名前が、同じデータを処理する一連の関数の終了としての役割を反映していることです。 しかし、新しいものを返すために実行できないthen()元のものを返す必要があるユースケースはありますか?Deferredpipe()Promise

6
CancellationTokenのデフォルトパラメータ
追加したい非同期コードがありCancellationTokenます。ただし、これが不要な実装はたくさんあるので、デフォルトのパラメータを使用したいと思いますCancellationToken.None。しかしながら、 Task<x> DoStuff(...., CancellationToken ct = null) 収量 タイプ「System.Threading.CancellationToken」への標準的な変換がないため、タイプ ''の値はデフォルトパラメータとして使用できません そして Task<x> DoStuff(...., CancellationToken ct = CancellationToken.None) 'ct'のデフォルトのパラメーター値はコンパイル時の定数でなければなりません のデフォルト値を設定する方法はありますCancellationTokenか?

3
Flaskで非同期タスクを作成する
私はFlaskでアプリケーションを書いていますが、WSGI同期とブロッキング以外は非常にうまく機能します。特に、サードパーティのAPIを呼び出すタスクが1つあり、そのタスクが完了するまでに数分かかる場合があります。その呼び出しを行って(実際には一連の呼び出しです)、実行させたいと思います。コントロールがFlaskに戻る間。 私の見解は次のようになります: @app.route('/render/<id>', methods=['POST']) def render_script(id=None): ... data = json.loads(request.data) text_list = data.get('text_list') final_file = audio_class.render_audio(data=text_list) # do stuff return Response( mimetype='application/json', status=200 ) 今、私がやりたいことは final_file = audio_class.render_audio() 実行して、メソッドが戻るときに実行されるコールバックを提供しますが、Flaskはリクエストの処理を続行できます。これは、Flaskを非同期で実行するために必要な唯一のタスクであり、これを実装するための最良の方法についてアドバイスをお願いします。 私はツイステッドとクラインを見てきましたが、おそらくスレッディングで十分であるため、それらが過剰であるかどうかはわかりません。または、セロリがこれに適していますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.