C# 消息框在多次单击以win form C退出后退出

C# 消息框在多次单击以win form C退出后退出,c#,.net,winforms,C#,.net,Winforms,代码运行后,会生成一个正确显示的消息框。但是,只需按几下ok/cross即可退出。我似乎找不到解决这个问题的方法 private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e) { List<String> BlockList = new List<String>(); con.Open(); SqlCommand cmd = con.Creat

代码运行后,会生成一个正确显示的消息框。但是,只需按几下ok/cross即可退出。我似乎找不到解决这个问题的方法

private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
    List<String> BlockList = new List<String>();
    con.Open();
    SqlCommand cmd = con.CreateCommand();
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = "select BlockList from BlockList";
    cmd.ExecuteNonQuery();
    using (SqlDataReader objReader = cmd.ExecuteReader())
    {
        if (objReader.HasRows)
        {
            while (objReader.Read())
            {                
                string item = objReader.GetString(objReader.GetOrdinal("BlockList"));
                BlockList.Add(item);

                string[] BlockArray = BlockList.ToArray();

                for (int i = 0; i < BlockArray.Length; i++)
                {
                    if (e.Url.Equals(BlockArray[i]))
                    {
                        e.Cancel = true;
                        MessageBox.Show("Booyaa Says No!", "Blocked"); // Block List Error Message
                        player.SoundLocation = "nono.wav";
                        player.Play();

                    }
                }
            }

        }
    }

    con.Close();
}

很难说清楚,但我想这可能与您正在放置MessageBox这一事实有关,它将在读取数据库的过程中停止UI线程。你有什么理由不能等到阅读结束吗?

谢谢,哈哈,我直到现在才意识到这一点!现在好了。