예제 #1
0
        static void SearchSentence(string search, string data)
        {
            string[] keysearch  = getKeySearch(search);
            int      prioritize = 0;

            string[] sentences = data.Split('\n');
            int      len       = sentences.Length;

            Thread thread1 = new Thread(() =>
            {
                for (int i = 0; i < len / 2; i++)
                {
                    SearchKey paragraph = new SearchKey(sentences[i], prioritize);
                    doSearch(paragraph, keysearch);
                }
            }
                                        );

            thread1.Start();
            // Thread2 tìm từ giữa đến hết.
            Thread thread2 = new Thread(() =>
            {
                for (int i = len / 2; i < len; i++)
                {
                    SearchKey paragraph = new SearchKey(sentences[i], prioritize);
                    doSearch(paragraph, keysearch);
                }
            }
                                        );

            thread2.Start();
            Console.ReadKey();
        }
예제 #2
0
 static void doSearch(SearchKey paragraph, string[] keysearch)
 {
     // Loại bỏ các từ tìm kiếm mà người dùng nhập trùng lặp.
     foreach (string key in keysearch.Distinct())
     {
         if (paragraph.getData().Contains(key))
         {
             paragraph.setPrioritize(paragraph.getPrioritize() + 1);
         }
     }
     // Giả sử chỉ xuất ra những câu có xuất hiện ít nhất 2 key search trở lên.
     if (paragraph.getPrioritize() >= 2)
     {
         Console.WriteLine(paragraph.getData());
     }
 }