私はアプリケーションに取り組んでおり、複数のスレッドを作成したいと考えています。各スレッドは を作成する必要があり、これらは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(methode1));
thread.Start();
}
}
webBrowser_DocumentCompleted
そのため、スレッドによって作成された各 Web ブラウザーには、他の Web ブラウザーの結果と混同しないように、独自のメソッドが必要です。
または、作成されたすべての Web ブラウザーに対して同じメソッドを使用しwebBrowser_DocumentCompleted
ますが、問題は、どの Web ブラウザーを指定するか、メソッド webBrowser_DocumentCompleted を呼び出す方法です。
前もって感謝します