อยากทราบว่า Windows Search ทำงานยังไง ทำไมถึงค้นหาช้ากว่า โปรแกรมค้นหาทั่วไป

ขอรบกวนถามผู้รู้ครับพอดีอาจารย์ให้ผมมาหาคำตอบ
ผมพึ่งทำโปรแกรมค้นหาส่งอาจารย์ครับ แล้วเขาก็ถามผมว่ามันดียังไง ?
ผมก็ตอบว่ามันเร็วกว่า Windows Search ของ windows แล้วอาจารย์ก็ถามอีกว่า
มันดีกว่ายังไง ? อันนี้แหละครับที่ผมตอบไม่ได้
รบกวนผู้รู้ช่วยตอบผมที่ครับว่าทำไม Windows Search ถึงได้ทำงานช้า เวลาเราค้นหา

ข้างล้างคือ code โปรแกรมผมครับ

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Software
{
    public partial class Form1 : Form
    {
        //string address = "D:\\";

        public Form1()
        {
            InitializeComponent();
            try {
                
                label4.Text = "C:\\Users\\Public\\Documents\\ห้ามลบ.txt";
                textBox2.Text = File.ReadAllText(label4.Text);
            }
            catch
            {
                System.IO.File.CreateText("C:\\Users\\Public\\Documents\\ห้ามลบ.txt");
                //MessageBox.Show("please create cfs.txt on C:\\Users\\Public\\Documents\\");
            }




            try
            {

                string b = textBox1.Text;
                string[] a = Directory.GetFiles(@"" + textBox2.Text, "*" + b + "*.*", SearchOption.AllDirectories);
                listBox1.Items.Clear();

                foreach (string ficheiro in a)
                    listBox1.Items.Add(Path.GetFileName(ficheiro));
            }
            catch
            {
                MessageBox.Show("กรุณาระบุตำแหน่ง FLODER ที่ถูกต้อง");
            }



        }
        

        private void button1_Click(object sender, EventArgs e)
        {
            try {
            System.Diagnostics.Process.Start(@"" + label1.Text);//เปิดไฟล์
                                                                // File.Open(@"" + label1.Text, FileMode.Open
                                                                // System.Diagnostics.Process.Start(@"" + performanceCounter1);//เปิดไฟล์
                                                                // File.Open(@"" + label1.Text, FileMode.Open);
            }
            catch
            {
                MessageBox.Show("กรุณาเลือกไฟล์ที่ต้องการเปิดก่อน");
            }
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

            try
            {

                string b = textBox1.Text;
                string[] a = Directory.GetFiles(@"" + textBox2.Text, "*" + b + "*.*", SearchOption.AllDirectories);
                listBox1.Items.Clear();

                foreach (string ficheiro in a)
                    listBox1.Items.Add(Path.GetFileName(ficheiro));
            }
            catch
            {
                MessageBox.Show("กรุณาระบุตำแหน่ง FLODER ที่ถูกต้อง");
            }
        }
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e) {
        
                string b = listBox1.Text;
                string[] a = Directory.GetFiles(@"" + textBox2.Text, b, SearchOption.AllDirectories);
                foreach (string ficheiro in a)
                    label1.Text = ficheiro;
        
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
        
        }

        private void button2_Click(object sender, EventArgs e)
        {
        
            FolderBrowserDialog fbd = new FolderBrowserDialog();
        

            string tempPath = "";
            if (fbd.ShowDialog() == DialogResult.OK)
            {
                tempPath = fbd.SelectedPath; // prints path
                textBox2.Text = fbd.SelectedPath;
                File.WriteAllText(label4.Text, textBox2.Text);

            }
            try
            {

                string b = textBox1.Text;
                string[] a = Directory.GetFiles(@"" + textBox2.Text, "*" + b + "*.*", SearchOption.AllDirectories);
                listBox1.Items.Clear();

                foreach (string ficheiro in a)
                    listBox1.Items.Add(Path.GetFileName(ficheiro));
            }
            catch
            {
                MessageBox.Show("กรุณาระบุตำแหน่ง FLODER ที่ถูกต้อง");
            }

        }

     /* private void button3_Click(object sender, EventArgs e)
        {
            
                File.WriteAllText(label4.Text, textBox2.Text);
            textBox1.ReadOnly = false;
        
            textBox2.ReadOnly = true;
            button3.Visible = false;
            button2.Visible = true;
        }*/

        private void button4_Click(object sender, EventArgs e)
        {
            this.Hide();
            Backup wn1 = new Backup();
            wn1.Show();
        }

        private void groupBox2_Enter(object sender, EventArgs e)
        {

        }

        private void listBox1_MouseClick(object sender, MouseEventArgs e)
        {
        
        }

        private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            try
            {
                System.Diagnostics.Process.Start(@"" + label1.Text);//เปิดไฟล์
                                                                    // File.Open(@"" + label1.Text, FileMode.Open
                                                                    // System.Diagnostics.Process.Start(@"" + performanceCounter1);//เปิดไฟล์
                                                                    // File.Open(@"" + label1.Text, FileMode.Open);
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }
    }
    }
แก้ไขข้อความเมื่อ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่