問題タブ [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.
c# - C#でC dll関数、構造体、およびコールバックを呼び出す
以下はヘッダー ファイルです。以下のコールバック関数を呼び出す方法を教えてください。
hloginInstance 関数と hDialog 関数は既に取得していますが、コールバック関数を呼び出すには助けが必要です。
よろしく、ジーニックス
c# - 非同期ランタイムメソッドの呼び出し
実行時にいくつかのアセンブリをロードし、Reflections(MethodInfo.Invoke)を使用してそれらのアセンブリにメソッドを呼び出しています。
ここで、これらの呼び出しを非同期にします。だから私はDelegate.BeginInvoke()を使うことを考えています。しかし、実行時に関数名を指定してデリゲートインスタンスを作成する方法がわかりません。(私が見るすべての例では、コンパイル時にデリゲートインスタンスターゲットが解決されています。)呼び出されるメソッドを含むMethodInfoオブジェクトがあります。これを行う方法はありますか?
vb.net - 継承されるコントロールには、どのクロススレッド呼び出し関数が適していますか?
現在のコントロールに継承されているときにDataGridView.Rows.Add関数を呼び出すための最良の方法に関して、比較的簡単な質問があります。継承されたコントロールを呼び出すための最良の方法はどれですか?呼び出しで直接呼び出すか、再帰的な関数を使用して呼び出しますか?どちらも同じ結果を生成しているように見え、行が追加されて数量が返されますが、どちらが最も効率的ですか?
代表者:Private Delegate Function ReturnDelegate() As Object
2つの方法は次のとおりです
。A)
または
B)
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 秒以上かかる場合はどうなるでしょうか。その場合、スレッドプールも効率的なソリューションになるでしょうか?
asp.net-mvc - アクションパラメーターでASP.NETMVCサブコントローラーを使用していますか?
私はMvcContribサブコントローラーを試しています。ソースの例を見ると、親コントローラー(HomeController)は、サブコントローラー(FirstLevelSubController)をパラメーターとして受け取るアクションを実行します。
ホームのインデックスビューで、ViewData.Getを呼び出して、サブコントローラーとそのビューをレンダリングします。
サブコントローラーのアクションが呼び出されます(2番目のレベルのコントローラーは無視してください。この例は、複数のサブコントローラーをネストする方法を示しているだけです)。
これはすべて機能し、サブコントローラーのビューは親ビュー内にレンダリングされます。
しかし、ホームコントローラーのアクションで他のパラメーターが必要な場合はどうなりますか?たとえば、Guidをコントローラーのインデックスメソッドに渡したい場合があります。
<%ViewData.Get( "firstLevel")。Invoke();を実行する方法はないようです。%>パラメータ付き。したがって、次のようなパラメーターを渡して、別のコントローラーからコントローラーにリンクする方法を理解できません。
おそらく私はこれに間違った方法でアプローチしていますか?親コントローラーにサブコントローラーを使用させるだけでなく、パラメーターや引数を受け入れるなどの興味深いことを行うには、他にどのような方法がありますか?
c# - Control.Invoke が 2 回目の呼び出しで失敗する
.Net Compact Framework 2.0 SP2およびC#を使用して、 Windows Mobile 5.0以降のアプリケーションを開発しています。
メソッド内に次のコードがあります。
実行すると、2 番目のステートメント (listBox1.Visible = true;) で次のように例外がスローされます。
別のスレッドで作成されたコントロールと対話するには、Control.Invoke を使用する必要があります。
何が起こっていますか?
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が実際にそれをキャッチするだけなら!
c# - コントロールが破棄されるときに Invoke を呼び出さない
ワーカー スレッドに次のコードがあります (ImageListView
以下は から派生したものですControl
)。
ただし、上記の方法でObjectDisposedException
時々取得します。コントロールは、チェックしてから呼び出すInvoke
までの間に破棄できるようです。どうすればそれを回避できますか?IsDisposed
Invoke