如何在这个程序中使用线程
本文关键字:线程 程序 | 更新日期: 2023-09-27 18:28:41
我编写了这个控制台应用程序来从文件中搜索特定字符串,看看它是否存在。。但是我只想打开主程序中的文件。并包含10个不同的线程,以便同时查找10个不同单词。。我试着用这根线,但没用对。。我该怎么做?有人能帮我查一下密码吗?这是我的节目。。
class Program
{
static void Main(string[] args)
{
Thread T = new Thread(Finding);
T.Start();
using (System.IO.StreamReader Reader = new System.IO.StreamReader("C://myfile2.txt"))
{
StringBuilder Sb = new StringBuilder();
string fileContent = Reader.ReadToEnd();
if (fileContent.Contains("and"))
{
Console.WriteLine("It is Present");
}
else
{
Console.WriteLine("It is not Present");
}
Console.ReadLine();
}
}
static void Finding()
{
if (fileContent.Contains("hello"))
{
Console.WriteLine("It is Present");
}
else
{
Console.WriteLine("It is not Present");
}
}
}
var text = File.ReadAllText("somePath");
foreach (var word in new[]{"word1", "word2", "word3"})
{
var w = word;
new Thread(() => Console.WriteLine("{0}: {1}",
w,
text.Contains(w) ? "Yes" : "No")).Start();
}
你应该知道字符串不能包含无限的字符,所以如果内容对字符串来说太大,你可以用File.ReadAllLines("path")到"lines"而不是File.ReadAllText("path)到"text"并替换
text.Contains(w)
带有
lines.Any(l => l.Contains(w))
如果你相信所有的单词都可能被找到,你也可以使用File.ReadLines()来做一些复杂的事情,以避免在不必要的时候读取所有的行。