C# 循环不必要地需要MessageBox,如果移除,则会冻结 我有一个C代码,当它运行时,它在一个多行使能的文本框中输入大约200个值,但是中间的一个消息框,我只确定它是在提供正确的数据,现在如果删除,冻结整个代码。我无法理解它的意义,以前的文本框处理较重的负载几乎没有问题,但显然这一个需要短暂的休息或至少某种形式的人机交互(幸运的是只需按下messagebox上的OK按钮)所以我想知道是否有一个解决方案或一个类似的方法,但不需要我的指导。仅仅为了从多个数据中获取一组数据而按键200多次是不方便的

C# 循环不必要地需要MessageBox,如果移除,则会冻结 我有一个C代码,当它运行时,它在一个多行使能的文本框中输入大约200个值,但是中间的一个消息框,我只确定它是在提供正确的数据,现在如果删除,冻结整个代码。我无法理解它的意义,以前的文本框处理较重的负载几乎没有问题,但显然这一个需要短暂的休息或至少某种形式的人机交互(幸运的是只需按下messagebox上的OK按钮)所以我想知道是否有一个解决方案或一个类似的方法,但不需要我的指导。仅仅为了从多个数据中获取一组数据而按键200多次是不方便的,c#,loops,messagebox,C#,Loops,Messagebox,以下是代码,以防万一: if (listBox3.SelectedIndex < 0 || listBox4.SelectedIndex < 0) { MessageBox.Show("Select the Chart Parameters(E.g.: BTC-USD)"); } if (listBox4.GetItemText(listBox4.SelectedItem).Contains(listBox3.GetItemText(listBox3.SelectedIte

以下是代码,以防万一:

if (listBox3.SelectedIndex < 0 || listBox4.SelectedIndex < 0) {
    MessageBox.Show("Select the Chart Parameters(E.g.: BTC-USD)");
}

if (listBox4.GetItemText(listBox4.SelectedItem).Contains(listBox3.GetItemText(listBox3.SelectedItem))) {
    MessageBox.Show("Please select seperate pairs.(E.g.: NOT BTC-BTC but e.g.:BTC-USD)");
}
else
{
    string url = textBox8.Text + listBox3.GetItemText(listBox3.SelectedItem) + listBox4.GetItemText(listBox4.SelectedItem);
    MessageBox.Show(url);
    System.Net.WebClient client8 = new System.Net.WebClient();
    var html = client8.DownloadString(url);

    string s = html.Replace("[[", "[");
    string ss = s.Replace("]]", "]");

    textBox9.Text = ss;

    dynamic obj1 = JsonConvert.DeserializeObject(ss);     //ss is the data
    var timezz = (Int32)obj1.SelectToken("time");
    textBox11.Text = textBox11.Text + timezz;
    var data1m = (string)obj1.SelectToken("data1m");


    ICollection<string> matches =
      Regex.Matches(data1m, @"\[([^]]*)\]", RegexOptions.Multiline)
      .Cast<Match>()
      .Select(x => x.Groups[1].Value)
      .ToList();

    foreach (string match in matches) { textBox10.Text += Environment.NewLine + match; }

    for (int i = 1; i < textBox10.Lines.Length; i++)
    {
        string linebyline = textBox10.Lines[i];
        var resultString = Regex.Match(linebyline, @"\d+").Value;
        //uni_time = resultString;
        var yen = linebyline.Replace(resultString, string.Empty);
        MessageBox.Show(yen);                                        

        /////WHY DOES IT NEEDS TO BE STOPPED BY THIS MSGBOX INORDER2 EXECUTE THE WHOLE CODE???
        //////IF I REMOVE IT, IT FREEZES
        var resultz = yen.Substring(yen.LastIndexOf(',') + 1);
        //uni_vol = resultz;
        var ztring = yen.Replace(resultz, string.Empty);
        //MessageBox.Show(ztring);

        //Regex re = new Regex(@"\d+(\.\d{1,4})?");

        ICollection<string> mc = Regex.Matches(ztring, @"\d+(\.\d{1,4})?").Cast<Match>()
        .Select(x => x.Groups[0].Value)
        .ToList();

        foreach (string m in mc)
        {
            //MessageBox.Show(m);
            if (textBox13.Text == string.Empty) { textBox13.Text += m; }
            else
            {
                textBox13.Text += Environment.NewLine + m;
            }
        }
    }

}
if(listBox3.SelectedIndex<0 | | listBox4.SelectedIndex<0){
MessageBox.Show(“选择图表参数(如:BTC-USD)”);
}
if(listBox4.GetItemText(listBox4.SelectedItem).Contains(listBox3.GetItemText(listBox3.SelectedItem))){
MessageBox.Show(“请选择单独的对(例如:非BTC-BTC,但例如:BTC-USD)”);
}
其他的
{
字符串url=textBox8.Text+listBox3.GetItemText(listBox3.SelectedItem)+listBox4.GetItemText(listBox4.SelectedItem);
MessageBox.Show(url);
System.Net.WebClient client8=新的System.Net.WebClient();
var html=client8.DownloadString(url);
字符串s=html.Replace(“[[”,“[”);
字符串ss=s.Replace(“]]”,“]”;
textBox9.Text=ss;
dynamic obj1=JsonConvert.DeserializeObject(ss);//ss是数据
var timezz=(Int32)obj1.SelectToken(“时间”);
textBox11.Text=textBox11.Text+timezz;
var data1m=(字符串)obj1.SelectToken(“data1m”);
i收集匹配=
Regex.Matches(data1m,@“\[([^]]*)\]”,RegexOptions.Multiline)
.Cast()
.Select(x=>x.Groups[1]。值)
.ToList();
foreach(匹配中的字符串匹配){textBox10.Text+=Environment.NewLine+match;}
对于(int i=1;ix.Groups[0]。值)
.ToList();
foreach(mc中的字符串m)
{
//MessageBox.Show(m);
如果(textBox13.Text==string.Empty){textBox13.Text+=m;}
其他的
{
textBox13.Text+=Environment.NewLine+m;
}
}
}
}

请格式化您的代码,以便我们阅读。谢谢。停止代码的异常是什么?它没有停止或给出错误,而是永久冻结。我怀疑你在某个地方有一个无限循环,你没有注意到,因为UI在同一个线程上更新,而该线程从未终止。或者您是否单击消息框200次以验证它在这种情况下是否正确终止?它是MessageBox.Show(日元);请格式化您的代码,以便我们阅读。谢谢。停止代码的异常是什么?它没有停止或给出错误,而是永久冻结。我怀疑你在某个地方有一个无限循环,你没有注意到,因为UI在同一个线程上更新,而该线程从未终止。或者您是否单击消息框200次以验证它在这种情况下是否正确终止?它是MessageBox.Show(日元);