問題タブ [invoke]

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 に答える
725 参照

c# - C#でC dll関数、構造体、およびコールバックを呼び出す

以下はヘッダー ファイルです。以下のコールバック関数を呼び出す方法を教えてください。

hloginInstance 関数と hDialog 関数は既に取得していますが、コールバック関数を呼び出すには助けが必要です。

よろしく、ジーニックス

0 投票する
4 に答える
3408 参照

c# - 非同期ランタイムメソッドの呼び出し

実行時にいくつかのアセンブリをロードし、Reflections(MethodInfo.Invoke)を使用してそれらのアセンブリにメソッドを呼び出しています。

ここで、これらの呼び出しを非同期にします。だから私はDelegate.BeginInvoke()を使うことを考えています。しかし、実行時に関数名を指定してデリゲートインスタンスを作成する方法がわかりません。(私が見るすべての例では、コンパイル時にデリゲートインスタンスターゲットが解決されています。)呼び出されるメソッドを含むMethodInfoオブジェクトがあります。これを行う方法はありますか?

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

vb.net - 継承されるコントロールには、どのクロススレッド呼び出し関数が適していますか?

現在のコントロールに継承されているときにDataGridView.Rows.Add関数を呼び出すための最良の方法に関して、比較的簡単な質問があります。継承されたコントロールを呼び出すための最良の方法はどれですか?呼び出しで直接呼び出すか、再帰的な関数を使用して呼び出しますか?どちらも同じ結果を生成しているように見え、行が追加されて数量が返されますが、どちらが最も効率的ですか?

代表者:Private Delegate Function ReturnDelegate() As Object

2つの方法は次のとおりです
。A)

または

B)

0 投票する
5 に答える
404 参照

c# - これは Threadpool を使用する適切なケースですか?

セットアップは次のとおりです。FeedDotNetライブラリを使用するフィード リーダーである、比較的単純な Winforms アプリを作成しようとしています。私が持っている質問は、スレッドプールの使用についてです。FeedDotNet は同期 HttpWebRequest を作成しているため、GUI スレッドをブロックしています。そのため、ThreadPool スレッドに同期呼び出しを配置し​​、それが機能している間に、フォームで更新が必要なコントロールを呼び出すのが最善の方法のように思えました。いくつかの大まかなコード:

this= メイン フォーム インスタンス

updatesPending= メインフォームの volatile int

ProcessFeedResult= Feed オブジェクトに対していくつかの操作を行うメソッド。スレッドプール スレッドは結果を返すことができないため、これはメイン スレッドを介して結果を処理する許容可能な方法ですか?

私が最も心配しているのは、これがどのようにスケールするかです。一度に最大 250 件のリクエストを試しました。私が確認したスレッドの最大数は約 53 で、すべてのスレッドが完了すると 21 に戻りました。コードをいじってみた例外的な例の 1 つを思い出すと、120 まで上昇するのを見たことがありました。普通ですよね?また、Windows XP を使用しているため、接続数が非常に多いと、どこかにボトルネックがあると思います。私は正しいですか?

スレッド/接続の最大効率を確保するにはどうすればよいですか?

これらすべての質問があると、これがスレッドプールの使用に適しているかどうかも疑問に思いました。MSDN やその他の情報源は、「短期間の」タスクに使用する必要があると述べています。比較的高速な接続を使用していることを考えると、1 ~ 2 秒の「短命」で十分ですか? ユーザーが 56K のダイヤルアップを使用していて、1 つの要求に 5 ~ 12 秒以上かかる場合はどうなるでしょうか。その場合、スレッドプールも効率的なソリューションになるでしょうか?

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

asp.net-mvc - アクションパラメーターでASP.NETMVCサブコントローラーを使用していますか?

私はMvcContribサブコントローラーを試しています。ソースの例を見ると、親コントローラー(HomeController)は、サブコントローラー(FirstLevelSubController)をパラメーターとして受け取るアクションを実行します。

ホームのインデックスビューで、ViewData.Getを呼び出して、サブコントローラーとそのビューをレンダリングします。

サブコントローラーのアクションが呼び出されます(2番目のレベルのコントローラーは無視してください。この例は、複数のサブコントローラーをネストする方法を示しているだけです)。

これはすべて機能し、サブコントローラーのビューは親ビュー内にレンダリングされます。

しかし、ホームコントローラーのアクションで他のパラメーターが必要な場合はどうなりますか?たとえば、Guidをコントローラーのインデックスメソッドに渡したい場合があります。

<%ViewData.Get( "firstLevel")。Invoke();を実行する方法はないようです。%>パラメータ付き。したがって、次のようなパラメーターを渡して、別のコントローラーからコントローラーにリンクする方法を理解できません。

おそらく私はこれに間違った方法でアプローチしていますか?親コントローラーにサブコントローラーを使用させるだけでなく、パラメーターや引数を受け入れるなどの興味深いことを行うには、他にどのような方法がありますか?

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

c# - Control.Invoke が 2 回目の呼び出しで失敗する

.Net Compact Framework 2.0 SP2およびC#を使用して、 Windows Mobile 5.0以降のアプリケーションを開発しています。

メソッド内に次のコードがあります。

実行すると、2 番目のステートメント (listBox1.Visible = true;) で次のように例外がスローされます。

別のスレッドで作成されたコントロールと対話するには、Control.Invoke を使用する必要があります。

何が起こっていますか?

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

winforms - XSD で生成された型指定された DataSet から接続タイムアウト例外をキャッチする方法は?

少し複雑かもしれませんが、ご了承ください。

Windows フォーム アプリがあります。XSD デザイナーを介して厳密に型指定された DataSet を使用します。非同期スレッドを介してデータ アクセス クエリを実行しています。次のように実行します。

この SO questionの提案に基づいてマルチスレッド部分を作成しました。それは正常に動作します... TableAdapter で GetList() を呼び出すときに DB エラー (SqlExceptions の形式) がある場合を除きます。

意図的に接続文字列を破損して接続試行が失敗した場合、約 10 個の一連の SqlExceptions が .NET フレームワーク コード ランドのどこかで生成され、キャッチされます (最初の例外)。その後、アプリケーションは未処理の例外をスローし、プログラムを終了します。私がこれを知っているのは、Main メソッドにラストチャンス例外キャッチャーがあり、何かがバブルアップした場合にそれらをログに記録するからです。しかし、上記で説明したように、ワーカー関数とコールバック関数の try-catch がトリガーされることはありません。それらは完全にバイパスされているように見えますか?問題を開始する行は try-catch ブロック内にありますが。

これSqlException であるため、キャッチする必要がありますが、代わりに、Main メソッドの try-catch が TargetInvocationException (SqlException を InnerException として) をキャッチします。エラーは予想通りです:

SQL Server への接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: TCP プロバイダー、エラー: 0 - ターゲット マシンがアクティブに拒否したため、接続できませんでした。)

しかし、try-catch でそれが見つからず、代わりに TargetInvocationException が発生するのはなぜですか? 何を与える?これは、例外がメインの UI スレッドとは別のスレッドで発生するためだとわかりますが、生成された例外が、try-catch を使用したコードのこの別のスレッドで生成された場合、なぜそれを無視して、代わりに完全にスレッド化し、メインスレッドをパニックさせて中止させますか?

理想的には、上記の catch (SqlException) がそれをキャッチする必要があり、DB に問題がある場合に備えて、UI を介して通知し、オフライン モードを有効にすることができます。この質問の詳細は重要ではありません。ここで完全に処理できるため、そのトラックで例外を停止できると言えば十分です...私のtry-catchが実際にそれをキャッチするだけなら!

0 投票する
14 に答える
22144 参照

c# - コントロールが破棄されるときに Invoke を呼び出さない

ワーカー スレッドに次のコードがあります (ImageListView以下は から派生したものですControl)。

ただし、上記の方法でObjectDisposedException時々取得します。コントロールは、チェックしてから呼び出すInvokeまでの間に破棄できるようです。どうすればそれを回避できますか?IsDisposedInvoke