我是 C# 的初学者,我正在使用HttpWebRequest来获取网页源。好吧,我正在使用正则表达式来扫描 html 元素内内容的源代码. 基本上,正则表达式在 C# 中看起来像这样。
Match m = Regex.Match(result, @"^(.*?<form .*?>(.*?)</form>.*?)+$", RegexOptions.Singleline);
我面临的唯一问题是,在此过程完成之前,我的应用程序会冻结。后台线程对我有帮助吗?如果是这样,请您帮我提供一个实现它的片段吗?.. 如果我可以为用户显示进度条或其他内容,那就太好了。
private void button1_Click(object sender, EventArgs e)
{
Thread backgroundThread = new Thread(
new ThreadStart(() =>
{
Match m = Regex.Match(result, @"^(.*?<form .*?>(.*?)</form>.*?)+$", RegexOptions.Singleline);
foreach (var capture in m.Groups[2].Captures)
{
forms.Add(capture.ToString());
}
MessageBox.Show("Thread completed!");
if (progressBar.InvokeRequired)
progressBar.BeginInvoke(new Action(() => progressBar1.Value = 0));
}
));
backgroundThread.Start();
}