【发布时间】:2011-03-29 22:55:40
【问题描述】:
我有一个包含超过 500 000 个网址的文件。现在我想读取文件并使用返回字符串消息的函数解析每个 url。目前一切正常,但性能不佳,所以我需要在模拟线程(例如 100 个线程)中开始解析
ParseEngine parseEngine = new ParserEngine(parseFormulas);
StreamReader reader = new StreamReader("urls.txt");
String line = string.Empty;
while ((line = reader.ReadLine()) != null)
{
string result = parseEngine.Parse(line);
Console.WriteLine(result);
}
reader.Close();
如果我可以通过单击按钮来停止所有线程并更改线程数,那就太好了。有什么帮助和提示吗?
【问题讨论】:
-
您使用的是哪个版本的 .NET?
-
您是否使用 Parse 方法调用而不是 I/O 本身对性能造成影响?至少你应该做一些测量,看看你会通过多线程获得什么好处。
-
4.0 版本。 Parse 方法最多需要 60 秒才能完成;页面下载、使用 html 敏捷包的 html 解析、正则表达式匹配和许多其他无需 I/O 的操作
标签: c# multithreading