問題タブ [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# - BeginInvokeの@objectパラメータに何を渡す必要がありますか?
次のように定義されているイベントデリゲートがあります。
イベントを非同期的に発生させます。
その後、の署名はBeginInvoke
次のようになります。
私が見たほとんどの例では、パラメータがBeginInvoke
で呼び出されていますが、そのパラメータの目的を説明するドキュメントが見つかりません。@object
null
では、そのパラメーターの目的は何ですか?何に使えますか?
c# - Dispatcher.BeginInvoke: ラムダを System.Delegate に変換できません
に電話しようとしていますSystem.Windows.Threading.Dispatcher.BeginInvoke
。メソッドのシグネチャは次のとおりです。
デリゲートを作成する代わりに、Lambda を渡そうとしています。
それは私に言っているコンパイラエラーを私に与えています
ラムダを System.Delegate に変換できません。
デリゲートのシグネチャはオブジェクトをパラメーターとして受け取り、void を返します。私のラムダはこれと一致しますが、機能していません。私は何が欠けていますか?
c# - 代理人が呼ばれるまで待ちます
処理が終了したときにイベントStartProcessing()
を発生させるメソッドを持つ非同期クラスがあります。時間がほとんどかかりません。int ResultReady()
StartProcessing()
このクラスを同期的に呼び出したい。私の擬似コードは次のようになります。
StartProcessing()を呼び出す
結果の準備ができるまで待つ/スリープする
結果を返す
これに最適なデザインパターンは何ですか?コード例を教えていただけますか?
c# - AsyncCallbackとIAsyncResultパターンに関する2つの質問
AsyncCallbackとIAsyncResultを使用したコールバックパターンに関する2つの質問。
コード例で質問を変更しました:
編集
を開始私は何が起こっているのかを見始めています。WCF非同期パターンと通常の非同期パターンを混同しました。WCFでは、プロキシを使用し、Begin-およびEndMethodには、関数デリゲートではなくプロキシを渡す必要があります。WCFの場合、キャストは機能しますが、通常の場合は機能しません。WCFは、[OperationContract(AsyncPattern = true)]属性を使用して、おそらく多少異なるパターンを適用します。編集終了
なぜ回線にエラーがあるのreturn (string)(result.AsyncState);
ですか?
本番コードとまったく同じパターンで問題ありません。
次に、クラスTestのBeginMethodでコードをデバッグできないのはなぜですか?
私はWorkerFunctionでしか中断できません。
c# - BeginInvoke はデータを渡さないが、Invoke を使用すると例外が発生する
グリッド ビューでデータを表示する Windows フォーム アプリケーションがあります。データは、バックグラウンド ワーカー スレッドから自動的に更新 (DB から取得) されています。したがって、クロススレッド参照を避けるために、バックグラウンド スレッドの DoWork メソッドで GridView.BeginInvoke() を呼び出し、メッセージのリストを渡します。ただし、デリゲート メソッドでは、メッセージ リストは空です。
GridView.invoke() を使用すると、messageList に値が含まれますが、「オブジェクトは現在別の場所で使用されています」という例外が発生することがあります。これは、非 UI スレッドで UI コントロールを参照することが原因であると考えられます。
どうすればこの問題を解決できますか?
c# - GUIオブジェクトでinvokeが必要になるのはいつですか?
C#Windows.Formsを使用して、メソッドInvalidate()、Refresh()などをメイン/ GUIスレッドで実行する必要がありますか(Invoke / BeginInvokeが必要)?Charting.Chartオブジェクトのポイントの追加/削除やシリーズの色の変更など、GUIオブジェクトのメンバーを変更するのはどうですか?
これらの変更のいくつかは問題なくワーカースレッドで発生していますが(それで問題ないと思いますか?)、GUIスレッドで明示的に必要な変更と、オブジェクトで発生する可能性のある変更を区別しようとしています。ワーカースレッド。この主題に関するガイダンスへのリンクまたは本の参照を誰かが持っていますか?
c# - BeginInvoke()は別のスレッドを実行しますか?
私のWPFアプリケーションでは、UIが応答しなくなるのを防ぐために、UI以外のスレッドでいくつかの作業を行いたいと思います。そのために私はこれをしました:
そして、デリゲートは次のように定義されます。
私の質問は:
BeginInvoke()
新しいスレッドを作成し、その中でコールバックSetPatternType
を実行しますか?もしそうなら、このスレッドはどのくらい続きますか?
このアプローチは一般的に良いですか?そうでない場合、それの何が問題になっていますか?そして、私が直面する可能性のある潜在的な問題は何ですか?
C#4.0とVisualStudio2010を使用しています。
編集:
また、これらに関するいくつかのガイドラインが必要です。
いつ自分で新しいスレッドを作成する必要があり、いつ使用する必要がありBeginInvoke()
ますか?そして、いつDispatcherObject.Dispatcher.BeginInvoke()
オブジェクトを使用する必要がありますか?
c# - 非同期ワークフローを実装する方法は?
上記のコードを使用して、非同期ワークフローを実装します。このワークフローを10回実行したいと思っています。スレッドプールに似たものがあるので、10個のワークフロースレッドを同時に実行できます。2番目は最初のものがその仕事を終えるのを待つ必要はありません。私のワークフローは非常に単純で、計算を行い、画面にいくつかの文を印刷します。上記のコードを実行した後、同時に実行したいと思っていたものではなく、10個のワークフローが1つずつ呼び出されているようです。ワークフローを非同期化する正しい方法は何ですか?ありがとうございました!
更新:他の人からのフィードバックの後、workflowapplicationを使用してこれを非同期的に実行しようとします。
実行結果は次のとおりです。4/8/20119:57:49AM 4/8/2011 9:57:50 AM時間:6.27777777777778E-05分:0.00376666666666667秒:0.226ミリ秒:226プロセス注文顧客:10 | 配送:翌日| 合計金額:250 | 送料:10ProductID:1 | 数量:5 | 価格:50 ProductID:2 | 数量:10 | 価格:200
同期されていないようですが、実際にワークフローを実行しているのは1つのスレッドだけです(メインのアプリケーションスレッドではありません)。しかし、出力から、ワークフローを実行しているスレッドは1つだけであることがわかります。10個のスレッドに同時にワークフローを実行させるにはどうすればよいですか?ありがとうございました!
.net - デリゲートをBeginInvokeするスレッドの性質を変更できますか?
BeginSomething()
私はとEndSomething()
のペアを持つインターフェースを実装しています、そして私の実装はメソッドにありますExecute()
そこで、を作成し、 BeginSomethingとEndSomethingAction action = Execute
を呼び出します。ただし、私のExecuteメソッドは、アパートメントの状態がSTA(シングルスレッドアパートメント)であるスレッドによって呼び出される必要があります。通常、これはを呼び出すことによって行われますが、この場合、どのスレッドが自分のメソッドを呼び出すのかわかりません。action.BeginInvoke
action.EndInvoke
Thread.SetApartmentState
呼び出し元のスレッドをSTAにするにはどうすればよいですか?
.net - UdpClient.BeginReceiveはいつ使用する必要がありますか?バックグラウンドスレッドでUdpClient.Receiveを使用する必要があるのはいつですか?
本質的に、明白なことを超えてこれらの違いは何ですか?どのフォームをいつ使用する必要がありますか?
対