私はアプリケーションに取り組んでおり、複数のスレッドを作成したいのですが、各スレッドはを作成する必要があり、これらはWebBrowser
すべてメソッドを使用します。WebBrowser
webBrowser_DocumentCompleted
作成された各インスタンスは、すべてのインスタンスで同じメソッドではなく、WebBrowser
独自のDocumentCompleted
ハンドラーを持つことができます。webBrowser_DocumentCompleted
私が説明します :
あるケースでは、単一のWebブラウザでの操作
int a = 0;
private void button1_Click(object sender, EventArgs e)
{
methode1();
}
private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (a == 1) methode2(wb);
if (a == 2) methode2(wb);
}
public void methode1()
{
webBrowser.Navigate("http://www.test.com");
a = 1;
}
public void methode2()
{
HtmlElement txt1 = webBrowser1.Document.GetElementById("tesxtbox1");
txt1.SetAttribute("value", "test");
webBrowser.Document.Forms[0].InvokeMember("submit");
a = 2;
}
public void methode3()
{
webBrowser.Navigate("http://www.test3.com");
}
しかし、複数の操作を行いたい場合、つまりbutoon1で、次を追加します。
private void button1_Click(object sender, EventArgs e)
{
for(int i=0; i<5 ;i++)
methode1();
}
それを行うには、いくつかのWebブラウザーが必要だと思うので、解決策は各操作のスレッドを作成することです。
private void button1_Click(object sender, EventArgs e)
{
for(int i=0; i<5 ;i++)
{
Thread thread = new Thread(new ThreadStart(method1));
thread.Start();
}
}
webBrowser_DocumentCompleted
したがって、スレッドによって作成された各Webブラウザーには、他のWebブラウザーの結果と混同しないように、独自のメソッドが必要です。
または、作成されたすべてのWebブラウザーに同じメソッドwebBrowser_DocumentCompleted
を使用しますが、問題は、どのWebブラウザーを指定するか、メソッドwebBrowser_DocumentCompletedを呼び出す方法です。