Как использовать потоки в этой программе? - PullRequest
1 голос
/ 21 марта 2012

Я написал это консольное приложение для поиска определенной строки из файла и проверки, присутствует ли она или нет. Но я хочу открыть только файл в основной программе.И включите 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");
        }
    }
}

1 Ответ

3 голосов
/ 21 марта 2012
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 (), чтобы избежать чтения всех строк, когда в этом нет необходимости,если вы верите, что все слова могут быть найдены.

...