我試圖在設置某些屬性的方法中應用線程。但是在應用線程之後,該方法停止設置值。我的代碼:無法在設置某些類屬性的方法中線程化
類Page.cs
public int numOfResults { get; private set; }
public int perPage { get; private set; }
public int pageCount { get; private set; }
public void pageResults()
{
HtmlWeb htmlWeb = new HtmlWeb();
HtmlDocument document = htmlWeb.Load(this.url);
var totalResults = document.DocumentNode
.Descendants("div")
.Where(x => x.Attributes.Contains("class") &&
x.Attributes["class"].Value.Contains("result-totals"));
string totalPages = string.Empty;
foreach (var result in totalResults)
{
if (result.InnerHtml != null)
{
totalPages = result.InnerHtml;
totalPages = totalPages.Substring(totalPages.LastIndexOf("f") + 1, 4);
numOfResults = Convert.ToInt32(totalPages.Trim());
}
}
var resultsSet = document.DocumentNode
.Descendants("div")
.Where(x => x.Attributes.Contains("class") &&
x.Attributes["class"].Value.Contains("business-container-inner"));
perPage = 0;
foreach (var result in resultsSet)
if (result.InnerHtml != null)
perPage++;
pageCount = (numOfResults/perPage) + 1;
}
電話:
Pages htmlDoc = new Pages(url);
Thread MyThread = new Thread(htmlDoc.pageResults);
MyThread.Start();
lblTotalRecords.Text = "Records Found : " + htmlDoc.numOfResults.ToString();
lblTotalRecords.Visible = true;
lblTotalPages.Text = "Pages Found : " + htmlDoc.pageCount.ToString();
lblTotalPages.Visible = true;
之前應用主題的所有值都設置正確,但現在他們所有的值設置爲0。
在一個單獨的線程中做什麼?似乎你需要等待你的線程完成分配* lblTotalRecords *之前。 – thepirat000