【发布时间】:2015-03-05 13:29:45
【问题描述】:
所以我最近一直在使用多线程,因为我是新手,所以我可能做一些基本错误..
Thread mainthread = new Thread(() => threadmain("string", "string", "string"));
mainthread.Start();
上面的代码完美无缺,但现在我想从我的线程中取回一个值。 为此,我在 SO 上搜索并找到了以下代码:
object value = null;
var thread = new Thread(
() =>
{
value = "Hello World";
});
thread.Start();
thread.Join();
MessageBox.Show(value);
}
我不知道如何将两者结合起来。
返回值将是一个字符串。
感谢您对新手的帮助,我尝试将它们组合起来,但由于我缺乏经验而出错
编辑:
我的话题:
public void threadmain(string url,string search, string regexstring) {
using (WebClient client = new WebClient()) // WebClient class inherits IDisposable
{
string allthreadusernames = "";
string htmlCode = client.DownloadString(url);
string[] htmlarray = htmlCode.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
foreach (string line in htmlarray)
{
if (line.Contains(search))
{
var regex = new Regex(regexstring);
var matches = regex.Matches(line);
foreach (var singleuser in matches.Cast<Match>().ToList())
{
allthreadusernames = allthreadusernames + "\n" + singleuser.Groups[1].Value;
}
}
}
MessageBox.Show(allthreadusernames);
}
}
【问题讨论】:
-
签出异步/等待
-
您不想从线程中获取值,而是想从函数中检索值。线程本身没有值。它们可用于处理工作。您想要返回的工作的结果。
标签: c# multithreading