問題タブ [invokerequired]

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

c# - InvokeRequired を使用したスレッドセーフ呼び出しで Textbox が更新されないのはなぜですか?

更新日1:

詳細: スレッド 1 と 2 は継続的にアクティブである必要があります。スレッド 1 は GUI を更新し、HTTP POST を実行しています。スレッド 2 は受信 HTTP POST に HTTPListener を使用し、そのデータをスレッド 1 に提供します。そのため、GUI は現在の Textbox 値で表示され、スレッド 2 がデータを提供するときに更新される必要があります。Servy または別のアプローチでは、両方のスレッドが同時に作業を行うことができますか? メインスレッドは、スレッド 2 が作業を完了するのを待っているようです。次に、prepWork を受け取り、それを処理します。Servy の例でコーディングしましたが、Task クラスで Run() の定義が見つかりませんでした。そのライブラリにはそのようなメソッドはありません。VS 2010 で Net 4.0 を使用しています。同等の使用方法はありますか? Start() もコンパイルされませんでした。Task は 1 回しか実行できないことを理解しています。

元の質問:

UI スレッド 1 として理解しているイベントでイベントが開始された場合、イベントを正常に開始し、イベント ハンドラーで GUI テキストボックスを更新するコードをテストしました。私の独立した Thread 2 メソッド PrepareDisplay(), Fire() が呼び出され、順番にイベントが発生します。スレッド セーフ呼び出しコード (WinForms のスレッド セーフに関する MSDN チュートリアルからモデル化) をいくつか入れましたが、イベント ハンドラーはテキスト ボックスを更新しません。コードをステップスルーすると、InvokeRequired が false のように見えます。私の最終的な目標は、スレッド 2 から UI スレッド 1 にデータを渡し、テキストボックスを新しいデータで更新することです。スレッドセーフ コードでこれが有効にならない理由がわかりません。誰かがこれをよりよく理解し、私が無視したことを理解するのを手伝ってもらえますか? 以下はコードです:

どうもありがとうございました、

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

c# - 複数の呼び出しとスレッド セーフ

いくつかのコントロールの値をインクリメントするワーカー スレッドがあるとします。インボークが必要なため、すべてのインクリメントは GUI スレッドで行う必要があります。そのために、BeginInvoke を使用します。

私の質問は:

複数のワーカー スレッドがすべて同時に GUI スレッドで呼び出されるため (インクリメント自体someControl.Value += value;は明らかにアトミックではありません)、競合状態によってコントロールのインクリメントが中断される可能性はありますか?

または、逆に言えば:

別の Invoke が処理される前に、1 つの Invoke が終了することが保証されていますか?

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

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

vb.net - リストボックスの問題でのスレッドセーフな呼び出し

初投稿はこちら。しかし、長い間潜んでいます。すぐに始めます。

ここでの私の小さなサイド プロジェクトは、craigslist から投稿を削除するアプリケーションです。スクレイピングされると、リスト データは「Form1」のリストボックスに送信されます。すべてのスクレイピングを処理するワーカー クラスを作成しました。クラス関数「guiAdd()」がリストボックスに適切に入力されない場合に問題が発生します。

Form1 が存在し、"lvsearch" という名前のリストボックス コントロールがあるとします。

これが問題だと私が認識している場所です: クラスサブルーチン

完全なクラスは次のとおりです。

これは、クラスがインスタンス化される方法です。

だから、それは私が持っているすべてです。解析コードの修正/完成が必要であることを認識しています。私はそれに到達します。これは概念実証段階にあります。適切なデータ型が渡されます。addGUI() が正しく機能しない理由を理解するための助けが必要です。私はマルチスレッドの世界に特に精通しているわけではないので、ここまでできてよかったです。

私はこれをガイドとして使用しています: http://www.vbforums.com/showthread.php?682082-Understanding-Multi-Threading-in-VB-Net

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

c# - DataGridView コントロールを読み取るが更新しない場合の .NET での GUI クロススレッドの安全性

Control.Invoke を使用してワーカー スレッドから GUI コントロールを更新することに関して、SO には多くの質問/回答がありますが、更新せずにコントロールからデータを読み取るというトピックを明確にすることができませんでした。

例: Windows フォームに DataGridView があります。ワーカー スレッドから、DGV 上の特定のセルの値を確認したいのですが、値を更新する必要はありません。ワーカー スレッドから、唯一のパラメーターとして DataGridView オブジェクトを受け取るメソッドを呼び出し、メソッドは DataGridView 内の特定のセルを調べますが、変更はしません。この場合、.Invoke を使用する必要がありますか?

現在、コードは .Invoke を使用せずに明らかな警告なしで正常に実行されているように見えます。ただし、DGV を更新するのではなく、DGV のセルを変更せずに見るだけなので、これが安全かどうかはわかりません。

誰かがこれに光を当てることができますか?これが重複した質問である場合は申し訳ありませんが、マルチスレッドの状況で更新/変更せずにコントロールを読み取るだけに焦点を当てた他の質問は見つかりませんでした。

ありがとう。

ワーカー スレッドから呼び出されるメソッドの例:

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

c# - C# wpf ディスパッチャの混乱

このコードを wpf に移植するにはどうすればよいですか?

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

vb.net - 実行が Me.Invoke に到達すると、ハングします

次のように、コードを 1 つの形式に単純化しました。

in Sub Test を実行するMe.Invoke(sub() ...とハングします。エラーはスローされず、イベント ビューアには何も書き込まれません。

F11、Debug Into を押してもハングします。

何か案は?

ありがとう

JP

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

c# - 非同期メソッド内に InvokeRequired UI パターンを実装するにはどうすればよいですか?

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

java - サーブレットを使用するようにTomcatをセットアップしようとしています

Java All in one for Dummies 3rd edition にある指示に従っています

私は tomcat をダウンロードし、それをセットアップするためのすべてのステップに従いました、ステップ 6 は言います。「web.xml ファイルを変更して呼び出し元のサーブレットを有効にします」呼び出し元のコード行を見つけてコメントするように指示されています。現在、web.xml ファイルで呼び出しを検索しましたが、何も表示されませんでした...自分で呼び出し側をコーディングする必要がありますか? または、別の行をコメントしてください。