【发布时间】:2014-03-31 23:29:32
【问题描述】:
对于我的 C# 程序,我创建了以下对象。
processurls processurls1 = new processurls();
创建它后,我单击一个按钮来启动我的计时器,该计时器将执行:
private void timer2_Tick(object sender, EventArgs e)
{
processurls1.pURLS(UrlList, URLCountOf, HTTP, label1, TotalURLS2, TotalURLS);
}
此计时器每 500 毫秒将触发我的 processurls1 对象的 pURLS 函数。 它每次都会更新我的主要表单 Label label1.text 。 但我的问题是它只会更新一次标签,而且我的程序运行起来非常笨拙。将标签对象和图片框对象传递给我的子类以在主窗体上正确更新而没有延迟的安全方法是什么?
public void pURLS(List<string> UrlListOf, int Count, Images HTTP, Label label1, int TotalURLS2, int TotalURLS)
{
try
{
string WebResponse = HTTP.DoGET(UrlListOf[Count]);
string pattern = "href=\"(.*?)\"";
MatchCollection OtherURLS = Regex.Matches(WebResponse, pattern);
for (int i = 0; i < OtherURLS.Count; i++)
{
Match HasHttp = Regex.Match(OtherURLS[i].Value, "http");
if (HasHttp.Success)
{
string CleanedUp = Regex.Replace(OtherURLS[i].Value, "href=\"", "");
CleanedUp = Regex.Replace(CleanedUp, "\"", "");
UrlListOf.Add(CleanedUp);
TotalURLS2++;
}
else
{
string CleanedUp = Regex.Replace(OtherURLS[i].Value, "href=\"", "");
CleanedUp = Regex.Replace(CleanedUp, "\"", "");
CleanedUp = UrlListOf[TotalURLS2] + "" + CleanedUp;
UrlListOf.Add(CleanedUp);
TotalURLS2++;
}
}
label1.Text = "U:" + TotalURLS2.ToString();
}
catch (Exception)
{
}
}
【问题讨论】:
-
您应该做的第一件事是摆脱这个吃所有异常的
catch块,以查看实际可能发生的任何错误。