내 C# 프로그램의 경우 아래 개체를 만듭니다.하위 클래스의 기본 폼 액세스
private void timer2_Tick(object sender, EventArgs e)
{
processurls1.pURLS(UrlList, URLCountOf, HTTP, label1, TotalURLS2, TotalURLS);
}
이 타이머 모든 500milliseconds 내 processurls1 개체의 pURLS 기능을 트리거 :
processurls processurls1 = new processurls();
내가 그것을 만든 후 나는 실행 내 타이머를 시작하는 버튼을 클릭합니다. 매번 기본 양식 Label1.text를 업데이트 할 것입니다. 하지만 내 문제는 레이블을 한 번만 업데이트하고 내 프로그램은 매우 까다 롭습니다. 레이블 객체 & picturebox 객체를 내 서브 클래스에 전달하여 지연없이 주 양식에서 올바르게 업데이트 할 수있는 안전한 방법은 무엇입니까?
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'블록을 제거하여 실제로 발생할 수있는 오류를 확인하는 것입니다. 우연히 있다. –