問題タブ [iasyncresult]

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 投票する
2 に答える
219 参照

c# - dll の Asynccallback によりフォームがフリーズする

ボタンとテキスト ボックスを含むフォーム Form1 があります。ボタンをクリックすると、USB デバイスからデータを取得する必要があります。何らかの理由で、約 2% しか正しく機能しません (100 回のクリックのうち 2 回の正しい応答を得ることができました)。Form1 のコードは次のとおりです。

USB 通信を処理するコードは DLL Lib1 にあります (以下のコードの一部):

動作しない場合、fileStreamDeviceData.BeginRead 付近で停止し、Form1 がフリーズします。

テストのために、まったく新しいプロジェクトを作成し、DLL を使用する代わりに、すべての DLL コードを Form1 にコピーしました。このオプションは、100% の確率で問題なく機能します。私の質問は、なぜ DLL で動作しないのですか?

更新:運が良ければ動作し始め、アプリケーションを閉じるまで無期限に動作します。それから、私はそれを再び機能させるために努力し続けなければなりません。この問題のトラブルシューティング方法は?

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

c# - HttpWebRequest 非同期メソッドの実装

さまざまな理由から、使用するサービスで非常に頻繁に HttpWebRequest クラスを使用してアウトバウンド HTTP 要求を送信するなど、既存の同期 IO バウンド コードを変更することを目指してきました。

async/await と .NET 4.5 への変更は認識していますが、現在は .NET 4.0 を使用しています。私は Microsoft.Bsl.Async も知っていますが、他の理由から、現在これはオプションではありません。

HttpWebRequestを使用した Async に関するこの記事のサンプル コードを参照として使用しています。

私が持っている質問は、UI を更新していないか、BeginXXXX と EndXXXX の間で他のことを行っていないが、アウトバウンド IO 呼び出しの時間がそれぞれ 40 秒以上かかる場合、この非同期を実装する価値があるか、それとも固執する必要があるかです。同期実行するには?

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

c# - c# Webrequest Post と GetResponse

XML を Web サイトに送信するプログラムを作成しています。書かれたコードは正常に動作します、何らかの理由で動作を停止し、System.Net.ProtocolViolationException をスローすることがあります。プログラムを閉じて再実行できます-正常に動作し始めます。

私が使用しているコードは次のとおりです。

response =request.GetResponse()失敗してエラーが発生したときです

ContentLength>0 または SendChunked==true を設定する場合は、要求本文を指定する必要があります。これを行うには、[Begin]GetResponse の前に [Begin]GetRequestStream を呼び出します。

どんな助けでも大歓迎です。

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

vb.net - VB.NET でプライベート プロパティ TcpClient.BeginConnect、IAsyncResult の結果を取得する

VB.NET にアプリケーションがあります。Visual Studio 2010 でアプリケーションを実行し、マウスオーバーするIAsyncResultと、保護されたプロパティが表示されますResult。アプリケーションでプロパティの値を読み取りたい。どうやってやるの?

rslt にマウスを合わせると、VS はそれが System.Net.Sockets.Socket+MultipleAddressConnectAsyncResult以前に型にプラス (+) を見たことがない型であることを示し、その型の変数を宣言することができません。プロパティを展開すると、値がResultのプロパティを持つ保護されたプロパティがあります。そのメッセージにアクセスする必要があります。にもアクセスしたいのですが、それはあまり重要ではありません。Message"No connection could be made because the target machine actively refused it 192.0.0.10:50035"addresses

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

c# - IAsyncResult と ThreadPool の比較

私は最近 IAsyncResult に出くわしたばかりで、かなり長い間遊んでいます。私が実際に疑問に思っているのは、より優れた代替 ThreadPool があるのに、なぜ IAsyncResult を使用するのかということです。両方についての私の現在の理解から、私はほぼすべての状況で ThreadPool を使用することを選択します。だから私の質問は、 IAsyncResult が別のものよりも優先されるコンテキストはありますか?

私が IAsyncResult を好まない理由:

  • BeginXXX と EndXXX で複雑さを追加
  • 戻り値を気にしない場合、呼び出し元は EndXXX の呼び出しを忘れる可能性があります
  • API 設計の冗長性の増加 (非同期で実行するすべてのメソッドに対して、Begin および End ラッパー メソッドを作成する必要があります)
  • 可読性の低下

コードに入れるには:

スレッドプール

IAsyncResult

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

c# - 汎用デリゲート EndInvoke を作成するには?

だから私は次のものを持っています:

そして、リストは延々と続くので、メソッド内では、各 EndInvoke に try catch を配置したくありません。例外をスローすることもありますが、システムを停止してはならず、他の Foos を続行する必要があるためです。そして、それぞれに try キャッチがある場合、メソッド内で非常に多くのスペースを占有します。

end invoke を呼び出す一般的な方法はありますか? それで、期待される結果を返すことができますか?

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

c# - Task が IAsyncResult を実装しているのに、AsyncWaitHandle メンバーが含まれていないのはなぜですか?

たぶんそれはばかげた質問です。

Taskクラスは次のように宣言されます。

IAsyncResultインターフェイスは次のように宣言されます。

しかし、メンバーはクラスまたはインスタンス AsyncWaitHandleに存在しません。Task

このコード:

次のコンパイル エラーが発生します。

エラー 1 'System.Threading.Tasks.Task' には 'AsyncWaitHandle' の定義が含まれておらず、タイプ 'System.Threading.Tasks.Task' の最初の引数を受け入れる拡張メソッド 'AsyncWaitHandle' が見つかりませんでした (ディレクティブまたはアセンブリ参照を使用していますか?)

ただし、これはコンパイルされるだけではありません。

しかし、メンバーが存在するため、機能します。この魔法は何ですか?

それはコンパイラのトリックですか、それとも別の方法で隠されていますか?

乾杯。