問題タブ [begininvoke]
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.
c# - MulticastDelegateでBeginInvokeを呼び出しますか?
Jon Skeetによると、「BeginInvokeを呼び出すことができるのは、単一のターゲット呼び出しを持つデリゲートでのみです。」
何故ですか?本当の理由は何ですか?
注:明確にするために(そして私がこの間違いを犯したため)、私はBeginInvoke
コントロールではなく、デリゲートについて話している。
c# - beginInvoke、GUI、およびスレッド
2スレッドのアプリケーションがあります。それらの1つ(T1)はメインGUIフォームであり、もう1つ(T2)はループで動作する関数です。T2が取得するとき、いくつかの情報はGUIフォームで関数を呼び出す必要があります。私はそれを正しく行うかどうかわかりません。
T2は関数FUNCTIONを呼び出します。これは、GUI形式で何かを更新します。
しかし今、私は2つの関数を宣言する必要があります。1つの関数だけを使用するにはどうすればよいですか?またはそれはどのように正しいのですか。
c# - control.BeginInvoke()がデリゲートの呼び出しに失敗する
control.BeginInvoke(delegate)がデリゲートの呼び出しに失敗することがあることに気づきました。BeginInvokeはPostMessageを作成するだけであり、そのメッセージは後でアプリケーションによって処理されることを理解しています(デフォルトの投稿メッセージの制限は10,000です)。アプリケーションがそれほど複雑ではないことを考えると、デリゲートの実行に失敗する可能性がある他の理由はありますか?私のコードは以下のようなものです。
c# - 非同期呼び出し - EndInvoke は必要ですか?
重複の可能性:
すべての BeginInvoke の後に EndInvoke が続く必要がありますか?
EndInvoke() はオプションですか、一種のオプションですか、それとも絶対にオプションではありませんか?
マルチスレッド アプリケーションを使用しており、セカンダリ スレッドの 1 つは、数分ごとにメイン スレッドで実行するコードを取得する必要があります。戻り値はなく、2 番目のスレッドは、例外が発生したり実行に失敗したりしても気にしません。
これまでのところ、 を介してコードを実行するようにしていますがForm.Invoke
、通常よりもはるかに長く (数秒) かかることがあり、完了するまでスレッドをブロックします。数秒間停止することなく実行を継続できるようにするには、2 番目のスレッドが必要です。
BeginInvoke
うまく機能するように聞こえますが、EndInvoke
を待機したり戻り値を取得したりしたくないので、 を呼び出す場所が実際にはありません。また、呼び出されるコードに一連のネイティブ呼び出しが含まれていることを考えると、そうしないのが良い考えかどうかはわかりませんEndInvoke
。
まったく呼び出す必要EndInvoke
がありますか、または代わりに使用する必要があるコードをメインフォームスレッドで非同期に実行する他の方法がありますか?
ありがとう =)
c# - BeginInvoke、EndInvokeでのマルチスレッドの問題?
リアルタイムの値を表示するクライアントアプリケーションがあります。値はDDE-Adviseを通じて提供されます。これらのリアルタイム値は、CNCマシンの移動軸です。したがって、このメソッドを介して1分あたり約100のアドバイスがありDdeClientAdvise
ます。
アプリケーションが多くのDDE-Advisesを取得しているとき、突然すべてのAdivesが失われたようです。
私は問題を次のように減らしました:
コメントLINEAを削除すると、すべてが正常に機能し、アドバイスが失われることはありません。すべてのアドバイスがログに記録されています。
BeginInvokeを有効にすると、しばらくするとDdeClientAdvise
-Methodが呼び出されなくなり、log-entriesがなくなります。
BeginInvoke、EndInvokeで何が間違っていますか?
編集:クラスに関する情報をさらに追加します。
vb.net - 別のスレッドでBeginInvokeを呼び出すVB.NET
したがって、この人物のコードがhttp://www.codeproject.com/KB/cs/Threadsafe_formupdating.aspxのVB.NETに変換されたコメントセクションから、クロススレッドUIのものを呼び出すのに役立つ小さなコードが示されています。
ただし、次のように呼び出そうとすると、エラーが発生します。
また
エラー1拡張メソッドのタイプパラメータのデータ型'PublicFunction SafeInvoke(Of TResult)(ByRef call As System.Func(Of frmLogin、TResult))As TResult' defined in'GvE.Globals'これらの議論から推測されます。データ型を明示的に指定すると、このエラーが修正される場合があります。C:\ GvE \ GvE \ frmLogin.vb 37 9 GvE
私は何が欠けていますか?フォームで定義されたメソッド内からそのコードを呼び出していますが、そのメソッドは別のスレッドから呼び出されています。
デリゲートを避けようとしているだけで、これは上記のコードが実行することになっていることですが、それを機能させることはできません。
ありがとう
c# - ソケットプログラミング : send と read の非同期メソッドはデータの順序を保証できますか?
以下に示すように、C#非同期メソッドを継続的に呼び出すと:
非同期メソッドはデータの順序を保証できますか?
非同期操作をサポートする他のネットワーク ライブラリは問題と見なされますか?
内部的に非同期操作でデータの順序を保証するためにどのように実装されていますか?
c# - EventHandlerの呼び出し
私は次のEventHandlerを持っています:
次のスニペットの違いを誰かが説明できますか?
Snippet EventHandler(A):
Snippet BeginInvoke(B):
明確にするために:「そのまま」EventHandlerを呼び出すことと使用することの違いは何BeginInvoke
ですか?
silverlight - Dispatcher.BeginInvoke を使用する理由
Dispatcher.BeginInvoke を使用して、UI スレッドで UI の更新が確実に行われるようにする方法を見てきました (そして読んだこともあります)。私はこの理屈を理解しています。
しかし、ビュー コード ビハインドで、TextBlock の Text プロパティなどのプロパティの割り当てが、この Dispatcher.BeginInvoke で割り当てた場合にのみ安全であると宣言される例を見てきました。
質問 ビューのコード ビハインドから何かを操作している場合、それは UI スレッドで操作されていることを意味しませんか (BackgroundWorker または非同期サービス呼び出しを使用していないと仮定します)。
上記の例では、他のスレッドや非同期操作は使用されていません。
質問 2 非同期 Web サービス ハンドラーがあり、このハンドラー内から TextBlock の文字列を更新したい場合。TB の Text プロパティを直接割り当てることはできますか、それとも Dispatcher.BeginInvoke を使用する必要がありますか。このような UI 要素の直接操作よりもデータ バインディングを優先するため、通常はこれを行わないことに注意してください。