私は単一のフォームを持っており、それを 200 回複製する必要があるため、すべてが一緒に処理されます。私のフォームは単にウェブサイトのスクリーンショットを撮っているだけで、何度も複製してより速い結果を得たいと思っています。それは可能ですか、それとも最善の方法は何ですか? フォームを複製して検索を続ける必要がありますか、それとも exe ファイルを 200 回開く方法を見つける必要がありますか?
2 に答える
このプロセスの200のインスタンスを開始するループにすぎない別のプロジェクトを作成します。
for (int i = 0; i < 200; i++)
Process.Start(@"C:\path\to\webcrawler.exe");
データを渡す必要がある場合は、webcrawlerがいくつかのコマンドラインパラメーターを受け入れ、代わりに「webcrawler.exeargs」を渡すコマンドラインプロセスを開始します。
コードでWebBrowser
コントロールを使用してページを開き、スクリーンショットを取得する場合 (私が想定しているように)、.exe を何度も開いてから、インスタンスを並行して実行することをお勧めします。これにより、少なくともブラウザー コントロールごとに個別のプロセスが提供されるため、これらのすべてのインスタンスはネットワーク リソースのみを競合し、残りは個別のプロセスになります。
200 個のインスタンスを実行することは、ほぼ間違いなく悪い考えです。コントロールを含む 200 個のフォームは、多くのシステム リソースを使用します。非常に強力なコンピューターを持っていない限り、問題が発生します。50 前後のインスタンスを実行する方が良いでしょう (スイート スポットを見つけるために実験する必要があるかもしれません。50 を超える場合もありますが、私は推測しています)。
これは決して洗練されたソリューションではありませんが、これはエンド ユーザー向けではなく、ユーティリティ向けであると思います。