C# Pause befehl ?

  • Hallo Leutz ich mal wieder ich bräuchte nen pause befehl da google mir immer wieder nur thread.sleep() rausgibt muss ich euch mal wieder belästigen.


    Und zwar gehts darum ich muss bei einem befehl zwichen drine einen breack von 5-10 Sekunden machen bis der webbrowser geladen hat das er dann seine daten per webbrowser controll senden kann.


    [cs]if (x > 95)
    if (y > 75)
    if (z > 40)
    if (zz > 40)

    webBrowserLogin.Navigate("http://ts10.travian.de/build.php?id=32");




    if (webBrowserLogin.Url.ToString() == "http://ts10.travian.de/build.php?id=32")
    {
    foreach (HtmlElement elem in webBrowserLogin.Document.All)
    {


    if (elem.Name == "t1")
    {
    elem.InnerText = "1";
    }


    if (elem.Name == "t2")
    {
    elem.InnerText = "0";
    }


    if (elem.Name == "t3")
    {
    elem.InnerText = "0";
    }


    if (elem.Name == "t4")
    {
    elem.InnerText = "0";
    }


    if (elem.GetAttribute("type") == "submit")
    {


    elem.InvokeMember("Click");[/cs]



    Thread.sleep hält ja den ganzen thread an und funktioniert deswegen ja leider nicht wäre genial wenn einer von euch ne andere lösung kennt.

  • warum benutzte keine webbrowser events? :O
    [cs]in vb.net
    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted[/cs]

  • Lustig, ein ähnliches Problem habe ich auch gerade.


    Eine Lösung ist einfach eine sleep Methode zu schreiben, die danach ein Event auslöst wodurch du wieder in den Gui Thread kommst.
    Du könntest aber auch den ganzen Vorgang (seiten aufrufen etc.) in einen anderem Thread aufrufen. Dann musst du aber alle Zugriffe invoken.


    wamborambo , das gilt leider nur für den HTML teil. Sachen die dynamisch geladen werden stehen manchmal auch dann noch nicht bereit wenn das DocumentCompleted event gefeuert wurde.

  • brauchte ich nicht googlen hatte ich schonma benutzt ^^ aber vielen dank des funktioniert ^^


    also kann der thread hier eigentlich auch wiedermal geclost werden hoffe ich komm morgen nicht wieder mit ner anderen Frage :P