为什么断点调式时可循环,F5直接运行,只输出一次

时间:2023-01-14 11:25:32
代码中在发布内容做了一个循环发布,在设置断点调试的时候每一次循环都可以执行输出,但直接运行的时候却只输出了一次结果,不知道是哪方面的原因

16 个解决方案

#1


代码都不贴,让谁给你分析,输出每个循环的信息,看看问题到哪

#2


一般这个时候都会用到F10和F11

#3


引用 1 楼 bdmh 的回复:
代码都不贴,让谁给你分析,输出每个循环的信息,看看问题到哪

up

#4


你不贴代码怎么给你分析啊,肯定是循环条件不对了才没有循环呗 主要看看这方面

#5


该回复于2011-12-20 14:29:27被版主删除

#6


该回复于2011-12-20 14:29:27被版主删除

#7


引用楼主 sungo163 的回复:
▪ 什么是支持云应用构建的开发平...▪ IT部门如何成为云服务提供商?▪ 你的数据中心属于云计算友好型...▪ 网络企业的CIO们是如何看待云计...▪ 私有云相比公有云,在架构上的...
代码中在发布内容做了一个循环发布,在设置断点调试的时候每一次循环都可以执行输出,但直接运行的时候却只输出了一次结果,不知道是哪方面的原因


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;
using System.Net;
using System.IO;
using System.Threading;
namespace 论坛模拟登陆
{
      public partial class Form1 : Form
      {
            public CookieCollection globaCookie;
            public string Fromhash { set; get; }

            public Form1()
            {
                  InitializeComponent();
            }
            private void login(string username, string url, string password)
            {
                  try
                  {
                        log.Text = "【" + DateTime.Now + "】系统正在登录,请您耐心等候......\r\n";
                        url = url + "/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1";
                        string strurl = string.Format("username={0}&password={1}&quickforward=yes&handlekey=ls", username, password);
                        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
                        req.Method = "POST";
                        req.Timeout = 5000;
                        req.ContentType = "application/x-www-form-urlencoded";
                        req.CookieContainer  = new CookieContainer();
                        Encoding coding = Encoding.GetEncoding("gb2312");
                        byte[] Date = coding.GetBytes(strurl);
                        req.ContentLength = strurl.Length;
                        Stream reqstr = req.GetRequestStream();
                        reqstr.Write(Date, 0, Date.Length);
                       
                        reqstr.Close();

                        //返回数据流
                        HttpWebResponse response = (HttpWebResponse)req.GetResponse();
                        Stream datestream = response.GetResponseStream();
                        StreamReader readdate = new StreamReader(datestream, Encoding.GetEncoding("gb2312"));
                        string html = readdate.ReadToEnd();
                        globaCookie = response.Cookies;
                        if (html.IndexOf("登录失败") <0)
                        {
                              log.Text += "【" + DateTime.Now + "】欢迎您回来" + username + "登录成功......\r\n";
                              tbshibie.Text = "欢迎您回来";
                              
                        }
                        else
                        {
                              tbshibie.Text = "登陆失败";
                              MessageBox.Show("登录失败请检查用户名和密码是否正确");
                        }

                  }
                  catch (Exception ex)
                  {
                        MessageBox.Show(ex.Message);
                  }
            }
            private string  GetHash(string geturl)
            {
                  
                // string formhash;
               //   string geturl = tbloginurl.Text;
                  HttpWebRequest req = (HttpWebRequest)WebRequest.Create(geturl);
                  CookieContainer cookies = new CookieContainer();
                  req.CookieContainer = cookies;
                  req.CookieContainer.Add(globaCookie);  
                  req.Method = "GET";

                  HttpWebResponse response = (HttpWebResponse)req.GetResponse();
                  Stream reslut = response.GetResponseStream();
                  StreamReader date = new StreamReader(reslut,Encoding.GetEncoding("gb2312"));
                  string html = date.ReadToEnd();
                  if (html.IndexOf("退出")>0)
                  {
                        Fromhash = html.Substring(html.IndexOf("ash=") + 4, 8);
                  }
                  return Fromhash;
            }
            private void send()
            {
                  try
                  {
                        GetHash(tbloginurl.Text);
                      // Thread.SpinWait(1000);
                        string id = textBox2.Text;
                        string url = tbloginurl.Text;
                        string sendurl = string.Format("{0}/forum.php?mod=post&action=newthread&fid={1}&extra=&topicsubmit=yes", url, id);
                        string title = textBox1.Text;
                        string content = richTextBox1.Text;
                        string date = "formhash=" + Fromhash + "&posttime=" + "&wysiwyg=1&subject=" + title + "&message=" + content + "&replycredit_extcredits=0&replycredit_times=1&replycredit_membertimes=1&replycredit_random=100&readperm=&price=&save=&uploadalbum=&newalbum=&usesig=1&allownoticeauthor=1&addfeed=1";
                        byte[] sendDate = Encoding.GetEncoding("gb2312").GetBytes(date);
                        HttpWebRequest sendReq = (HttpWebRequest)WebRequest.Create(sendurl);
                        sendReq.Method = "POST";
                        sendReq.ContentType = "application/x-www-form-urlencoded";
                        sendReq.ContentLength = sendDate.Length;
                        sendReq.CookieContainer = new CookieContainer();
                        sendReq.CookieContainer.Add(globaCookie);
                        Stream sendStream = sendReq.GetRequestStream();
                        sendStream.Write(sendDate, 0, sendDate.Length);
                        sendStream.Close();

                        // 获取发布成功信息流
                        HttpWebResponse rep = (HttpWebResponse)sendReq.GetResponse();
                        Stream datestream = rep.GetResponseStream();
                        StreamReader readDate = new StreamReader(datestream, Encoding.GetEncoding("gb2312"));
                        string html = readDate.ReadToEnd();
                        if (html.IndexOf("楼主") > 0)
                        {
                              log.Text += string.Format("[{0}]【文章】{1}发布成功\r\n", DateTime.Now,title);
                        }
                        readDate.Close();
                        datestream.Close();

                  }
                   catch (Exception ex)
                  {

                        MessageBox.Show(ex.Message);
                  }
            }
            private void button1_Click(object sender, EventArgs e)
            {
                  
                  if (tbusername.Text.ToString().Trim() !="")
                  {
                        if (tbpassword.Text.ToString().Trim() != "")
                        {
                              if (tbloginurl.ToString().Trim() != "")
                              {
                                    string username;
                                    string url;
                                    string password;
                                    username = tbusername.Text;
                                    url = tbloginurl.Text;
                                    password = tbpassword.Text;
                                    login(username, url, password);
                                          for (int i = 0; i <10; i++)
                                          {
                                                
                                                send();
                                                                                                                                  }
                                          
                                      
                              }
                              else
                              {
                                    MessageBox.Show("登录网址不能为空");
                              }
                        }
                        else
                        {
                              MessageBox.Show("密码不能为空");
                              return;
                        }
                  }
                  else 
                  {
                        MessageBox.Show("登录帐号不能为空");
                        return;
                  }
            }
      }
}

这是代码

#8



                              if (tbloginurl.ToString().Trim() != "")
                              {
                                    string username;
                                    string url;
                                    string password;
                                    username = tbusername.Text;
                                    url = tbloginurl.Text;
                                    password = tbpassword.Text;
                                    login(username, url, password);
                                          for (int i = 0; i <10; i++)
                                          {
                                                
                                                send();
                                                                                                                                  }
                                          
                                      
                              }
                              else
                              {
                                    MessageBox.Show("登录网址不能为空");
                              }

你确定这里的 } 是你少复制了?这个程序能跑起来么?

#9


引用 8 楼 pmars 的回复:
C# code

                              if (tbloginurl.ToString().Trim() != "")
                              {
                                    string username;
                               ……

应该是少复制了,程序可以跑。不会出现语法错误

#10


引用 8 楼 pmars 的回复:
C# code

                              if (tbloginurl.ToString().Trim() != "")
                              {
                                    string username;
                                  ……


没少,你拉下滚动条。。。。

#11


高手来提示一下啊

#12


在for循环里执行send后适当延时一下。一般单步调试可执行,去掉断点就不行都是因为多线程或其他原因造成的,可以尝试用延时的方法去解决。

#13


延时10秒是可以发的,但好像太慢了,如果是用多线程是不是这个可以缩短一些时间

#14


延时10秒是可以发的,但好像太慢了,如果是用多线程是不是这个可以缩短一些时间

#15


send();
后面加上 Thread.Sleep(5000);

#16


send();
System.Threading.Thread.Sleep(3000);

#1


代码都不贴,让谁给你分析,输出每个循环的信息,看看问题到哪

#2


一般这个时候都会用到F10和F11

#3


引用 1 楼 bdmh 的回复:
代码都不贴,让谁给你分析,输出每个循环的信息,看看问题到哪

up

#4


你不贴代码怎么给你分析啊,肯定是循环条件不对了才没有循环呗 主要看看这方面

#5


该回复于2011-12-20 14:29:27被版主删除

#6


该回复于2011-12-20 14:29:27被版主删除

#7


引用楼主 sungo163 的回复:
▪ 什么是支持云应用构建的开发平...▪ IT部门如何成为云服务提供商?▪ 你的数据中心属于云计算友好型...▪ 网络企业的CIO们是如何看待云计...▪ 私有云相比公有云,在架构上的...
代码中在发布内容做了一个循环发布,在设置断点调试的时候每一次循环都可以执行输出,但直接运行的时候却只输出了一次结果,不知道是哪方面的原因


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;
using System.Net;
using System.IO;
using System.Threading;
namespace 论坛模拟登陆
{
      public partial class Form1 : Form
      {
            public CookieCollection globaCookie;
            public string Fromhash { set; get; }

            public Form1()
            {
                  InitializeComponent();
            }
            private void login(string username, string url, string password)
            {
                  try
                  {
                        log.Text = "【" + DateTime.Now + "】系统正在登录,请您耐心等候......\r\n";
                        url = url + "/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1";
                        string strurl = string.Format("username={0}&password={1}&quickforward=yes&handlekey=ls", username, password);
                        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
                        req.Method = "POST";
                        req.Timeout = 5000;
                        req.ContentType = "application/x-www-form-urlencoded";
                        req.CookieContainer  = new CookieContainer();
                        Encoding coding = Encoding.GetEncoding("gb2312");
                        byte[] Date = coding.GetBytes(strurl);
                        req.ContentLength = strurl.Length;
                        Stream reqstr = req.GetRequestStream();
                        reqstr.Write(Date, 0, Date.Length);
                       
                        reqstr.Close();

                        //返回数据流
                        HttpWebResponse response = (HttpWebResponse)req.GetResponse();
                        Stream datestream = response.GetResponseStream();
                        StreamReader readdate = new StreamReader(datestream, Encoding.GetEncoding("gb2312"));
                        string html = readdate.ReadToEnd();
                        globaCookie = response.Cookies;
                        if (html.IndexOf("登录失败") <0)
                        {
                              log.Text += "【" + DateTime.Now + "】欢迎您回来" + username + "登录成功......\r\n";
                              tbshibie.Text = "欢迎您回来";
                              
                        }
                        else
                        {
                              tbshibie.Text = "登陆失败";
                              MessageBox.Show("登录失败请检查用户名和密码是否正确");
                        }

                  }
                  catch (Exception ex)
                  {
                        MessageBox.Show(ex.Message);
                  }
            }
            private string  GetHash(string geturl)
            {
                  
                // string formhash;
               //   string geturl = tbloginurl.Text;
                  HttpWebRequest req = (HttpWebRequest)WebRequest.Create(geturl);
                  CookieContainer cookies = new CookieContainer();
                  req.CookieContainer = cookies;
                  req.CookieContainer.Add(globaCookie);  
                  req.Method = "GET";

                  HttpWebResponse response = (HttpWebResponse)req.GetResponse();
                  Stream reslut = response.GetResponseStream();
                  StreamReader date = new StreamReader(reslut,Encoding.GetEncoding("gb2312"));
                  string html = date.ReadToEnd();
                  if (html.IndexOf("退出")>0)
                  {
                        Fromhash = html.Substring(html.IndexOf("ash=") + 4, 8);
                  }
                  return Fromhash;
            }
            private void send()
            {
                  try
                  {
                        GetHash(tbloginurl.Text);
                      // Thread.SpinWait(1000);
                        string id = textBox2.Text;
                        string url = tbloginurl.Text;
                        string sendurl = string.Format("{0}/forum.php?mod=post&action=newthread&fid={1}&extra=&topicsubmit=yes", url, id);
                        string title = textBox1.Text;
                        string content = richTextBox1.Text;
                        string date = "formhash=" + Fromhash + "&posttime=" + "&wysiwyg=1&subject=" + title + "&message=" + content + "&replycredit_extcredits=0&replycredit_times=1&replycredit_membertimes=1&replycredit_random=100&readperm=&price=&save=&uploadalbum=&newalbum=&usesig=1&allownoticeauthor=1&addfeed=1";
                        byte[] sendDate = Encoding.GetEncoding("gb2312").GetBytes(date);
                        HttpWebRequest sendReq = (HttpWebRequest)WebRequest.Create(sendurl);
                        sendReq.Method = "POST";
                        sendReq.ContentType = "application/x-www-form-urlencoded";
                        sendReq.ContentLength = sendDate.Length;
                        sendReq.CookieContainer = new CookieContainer();
                        sendReq.CookieContainer.Add(globaCookie);
                        Stream sendStream = sendReq.GetRequestStream();
                        sendStream.Write(sendDate, 0, sendDate.Length);
                        sendStream.Close();

                        // 获取发布成功信息流
                        HttpWebResponse rep = (HttpWebResponse)sendReq.GetResponse();
                        Stream datestream = rep.GetResponseStream();
                        StreamReader readDate = new StreamReader(datestream, Encoding.GetEncoding("gb2312"));
                        string html = readDate.ReadToEnd();
                        if (html.IndexOf("楼主") > 0)
                        {
                              log.Text += string.Format("[{0}]【文章】{1}发布成功\r\n", DateTime.Now,title);
                        }
                        readDate.Close();
                        datestream.Close();

                  }
                   catch (Exception ex)
                  {

                        MessageBox.Show(ex.Message);
                  }
            }
            private void button1_Click(object sender, EventArgs e)
            {
                  
                  if (tbusername.Text.ToString().Trim() !="")
                  {
                        if (tbpassword.Text.ToString().Trim() != "")
                        {
                              if (tbloginurl.ToString().Trim() != "")
                              {
                                    string username;
                                    string url;
                                    string password;
                                    username = tbusername.Text;
                                    url = tbloginurl.Text;
                                    password = tbpassword.Text;
                                    login(username, url, password);
                                          for (int i = 0; i <10; i++)
                                          {
                                                
                                                send();
                                                                                                                                  }
                                          
                                      
                              }
                              else
                              {
                                    MessageBox.Show("登录网址不能为空");
                              }
                        }
                        else
                        {
                              MessageBox.Show("密码不能为空");
                              return;
                        }
                  }
                  else 
                  {
                        MessageBox.Show("登录帐号不能为空");
                        return;
                  }
            }
      }
}

这是代码

#8



                              if (tbloginurl.ToString().Trim() != "")
                              {
                                    string username;
                                    string url;
                                    string password;
                                    username = tbusername.Text;
                                    url = tbloginurl.Text;
                                    password = tbpassword.Text;
                                    login(username, url, password);
                                          for (int i = 0; i <10; i++)
                                          {
                                                
                                                send();
                                                                                                                                  }
                                          
                                      
                              }
                              else
                              {
                                    MessageBox.Show("登录网址不能为空");
                              }

你确定这里的 } 是你少复制了?这个程序能跑起来么?

#9


引用 8 楼 pmars 的回复:
C# code

                              if (tbloginurl.ToString().Trim() != "")
                              {
                                    string username;
                               ……

应该是少复制了,程序可以跑。不会出现语法错误

#10


引用 8 楼 pmars 的回复:
C# code

                              if (tbloginurl.ToString().Trim() != "")
                              {
                                    string username;
                                  ……


没少,你拉下滚动条。。。。

#11


高手来提示一下啊

#12


在for循环里执行send后适当延时一下。一般单步调试可执行,去掉断点就不行都是因为多线程或其他原因造成的,可以尝试用延时的方法去解决。

#13


延时10秒是可以发的,但好像太慢了,如果是用多线程是不是这个可以缩短一些时间

#14


延时10秒是可以发的,但好像太慢了,如果是用多线程是不是这个可以缩短一些时间

#15


send();
后面加上 Thread.Sleep(5000);

#16


send();
System.Threading.Thread.Sleep(3000);