問題タブ [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 に答える
431 参照

vb.net - Control.BeginInvoke が TextBox.AppendText、クロススレッドで機能しない

メッセージを含むテキスト ボックスをステータス ログとして更新するメソッドを公開したいと考えています。AppendText メソッドを使用したいのですが、使用時に奇妙なマルチスレッドの問題が発生しています。連結によって新しいメッセージを追加できます。この問題は、テキスト ボックスが表示されていないことを示しており、フォームを閉じるときにクロス スレッド アクセス エラーが表示されます。機能するものと機能しないものの例を次に示します。

最後の手段である追加の手順を実行しない限り、機能しますが、AppendText とは異なります。

使用したいが機能しないもの:

追加情報と更新情報: まず最初に、事前に十分な情報を提供できなかったことをお詫びします。

次のコードが機能するため、少なくとも問題の一部は、フォームをインスタンス化し、呼び出すAddMessage(newMessage)前に呼び出しているようです。Show()

私はいつでも次のようなことをすることができますが、何が起こっているのか知りたいです:)

また、これは非常にエレガントだとは思いません...特にログサイズの制限を追加する場合

0 投票する
0 に答える
393 参照

c# - フォームのメソッドを呼び出す前に、フォーム全体で InvokeIfRequired を使用できますか?

Winforms
には、着信 UDP メッセージをリッスンする非 GUI スレッドがあります。
メッセージを受信すると、フォームのメソッドの 1 つを呼び出して、フォーム上のさまざまな UI コンポーネントを更新します。

これは明らかに競合状態です。すべてのコンポーネントで
何らかのパターンを使用することになっているようです。InvokeIfRequired

InvokeIfRequired人々が提案しているように見える何百ものこれらの条件文とラムダでコードをリテラルする代わりに、単一のロックを取得できますか? フォーム コードの内部を変更する代わりに、フォームへの 1 回の呼び出しにスレッド セーフな調整を導入できますか?

私の実行中のスレッドは次のようになります。

フォームは次のようになります。

への呼び出しの周りに何かを置きたいと思っていました gui.UpdateLotsOfGuiComponents();

0 投票する
0 に答える
118 参照

c# - Xamarin で Invokes/Threadings を実装または使用する方法はありますか?

まず第一に、私は Xamarin を初めて使用するので、これはばかげているように聞こえるかもしれません。ac#-programm を Xamarin に「書き直す」必要があります (次のように: Computerprogramm をプログラムしたので、そのための android-app を作成する必要があります。Android-App(Xamarin) を使用しています)。ここまでは順調ですが、スレッド化 (MethodInvoker、InvokeRequire など) に問題があります。どうすれば対処できますか? その非同期を考えると、非同期タスクよりも簡単な方法があることを願っています。タスクは代替ですか?

たとえば、この短いコード: