应用程序在运行时崩溃

本文关键字:崩溃 运行时 应用程序 | 更新日期: 2023-09-27 18:15:45

下面是我的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace MafiaspilletBot
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            webBrowser1.Navigate("http://mafiaspillet.no/");
            webBrowser1.ScriptErrorsSuppressed = true;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            SendData();
        }
        private void SendData()
        {
            webBrowser1.Document.GetElementsByTagName("input").GetElementsByName("brukernavn")[0].SetAttribute("value", textBox2.Text);
            webBrowser1.Document.GetElementsByTagName("input").GetElementsByName("passord")[0].SetAttribute("value", textBox1.Text);
            System.Threading.Thread.Sleep(5000);
            webBrowser1.Document.GetElementsByTagName("input").GetElementsByName("login_buton")[0].InvokeMember("click");
            System.Threading.Thread.Sleep(10000);
            DoKrims();
        }
        private void DoKrims()
        {
            webBrowser1.Navigate("http://mafiaspillet.no/kriminalitet3.php");
            System.Threading.Thread.Sleep(10000);
            webBrowser1.Document.GetElementById("submit").InvokeMember("click");
        }
    }
}

但是每次我运行它并在应用程序中填充textBox1textBox2 and submit them throu时,整个窗口就停止工作。我的代码中是否有任何东西会导致这个问题,或者我可以做些什么来摆脱这个问题?此外,我从来没有使用过c#,这是我第一次用c#制作和完成,因为我认为学习c#会很有趣。无论如何,要加载的网站使用大量的javascript,我找不到一种方法让webBrowser1使用它们,所以我使用webBrowser1.ScriptErrorsSuppressed = true;忽略错误消息。

应用程序在运行时崩溃

据我所知,您正在使用:

System.Threading.Thread.Sleep(5000);
System.Threading.Thread.Sleep(10000);
System.Threading.Thread.Sleep(10000);

这将使您的应用程序在每次执行button1_Click时无响应25秒。它会发生,因为它是由一个线程处理的。为了避免它,尝试在单独的线程中执行SendData()

简单的例子是:

Thread SendThread = new Thread(SendData);
SendThread.Start();

你可以尝试在这里读取线程运行simple thread