2011-07-12 14 views
1

私はforループを持っており、内部にはブラウザ用のナビゲーションメソッドがあります。それは別のサイトを読み込むことになっていますが、問題は1つのサイトの読み込みを開始し、読み込む前に別のサイトを読み込むことです。私はそれが完了するまでそれを一時停止するようにする必要があります。C#:イベントまでループを停止

ProgressChangedイベントが100%になったときに私はイベントを書き始めました。私は次に何をすべきか分かりませんでしたが、それはスタートだと思います。 助けてください、ありがとう!

編集:私はRolandとしてFormsを使用しています。

答えて

3

あなたは、Windowsフォームプログラミングを行っていると仮定します。それはまっすぐ進むのですURIのリストについては

public Uri MyURI { get; set; } 

public Form1() 
{ 
    InitializeComponent(); 

    MyURI = new Uri("http://stackoverflow.com"); 
    webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted); 
    webBrowser1.Url = MyURI; 
} 

void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{ 
    if(e.Url == MyURI) 
     MessageBox.Show("Page Loaded"); 
} 

:あなたがしたいイベントがここDocumentCompletedでは例です。

public int CurrentIndex = 0; 
List<Uri> Uris; 

public Form1() 
{ 
    InitializeComponent(); 

    Uris = new List<Uri> { new Uri("http://stackoverflow.com"), new Uri("http://google.com/") }; 

    webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted); 

    webBrowser1.Url = Uris[CurrentIndex]; 
} 

void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{ 
    WebBrowser browser = (WebBrowser)sender; 
    if (e.Url == Uris[CurrentIndex]) 
    { 
     CurrentIndex++; 
     if (CurrentIndex < Uris.Count) 
     { 
      browser.Url = Uris[CurrentIndex]; 
     } 
    } 
} 
+0

ありがとうございます@ローランド、しかし、私はループの助けが必要です。 文書が完成するまで待つようにしてください。それは自分自身を繰り返すだけです。 – MasterMastic

+0

リストを扱うための上記の更新を参照してください。 – Candide

+0

Thread.sleep(1000)? – Mathieu