Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > C# WinApp Thread ซ้อน Thread แล้วค้างครับมีวิธีไม๊ครับ



 

C# WinApp Thread ซ้อน Thread แล้วค้างครับมีวิธีไม๊ครับ

 



Topic : 113031



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook



ผมทำการค้นหาไฟล์แต่ละโฟลเดอร์
แล้วแยก โฟลเดอร์ละ thead ไปทำงานปรากฏว่าเครื่องค้างครับ(คอมช้ามั้ง)
ช่วยแนะนำหน่อยครับว่าควรทำยังไงไม่จำเป็นต้องแยก โฟลเดอร์ละ thead ก็ได้ครับ
แค่ค้นหาไฟล์ แล้วลง datatable ให้เร็วขึ้นก็พอครับ
Code (C#)
DataTable dt;

        private void button2_Click(object sender, EventArgs e)
        {
            dt = new DataTable();
            dt.Columns.Add(new DataColumn("Artis_Song", typeof(string)));
            dt.Columns.Add(new DataColumn("File", typeof(string)));
            System.Threading.Thread thdAddLyric = new System.Threading.Thread(new System.Threading.ThreadStart(GetFiles)) { IsBackground = true };
            thdAddLyric.Start();
        }
        string _dir;
        private void AddSong()
        {
            foreach (string file in System.IO.Directory.GetFiles(_dir, "*.lyr"))
            {
                Random rnd = new Random();
                string result = "" + rnd.Next(1, 99999) + rnd.Next(1, 99999) + rnd.Next(1, 99999) + rnd.Next(1, 99999) + rnd.Next(1, 99999) + rnd.Next(1, 99999) + rnd.Next(1, 99999) + rnd.Next(1, 99999);
                try
                { result = (string)System.IO.File.ReadLines(file, System.Text.Encoding.GetEncoding(874)).Skip(1).Take(1).First() + " ; " + (string)System.IO.File.ReadLines(file, System.Text.Encoding.GetEncoding(874)).Skip(0).Take(1).First(); ;}
                catch { }
                try
                {
                    DataRow dr = dt.NewRow();
                    dr["File"] = file;
                    dr["Artis_Song"] = result.Replace(" ", "").
                        Replace("(G)", "").Replace("(C)", "").
                        Replace("(Cm)", "").Replace("(C#)", "").Replace("(C#m)", "").
                        Replace("(D)", "").Replace("(Dm)", "").Replace("(E)", "").
                        Replace("(Eb)", "").Replace("(Ebm)", "").Replace("(Em)", "").
                        Replace("(F)", "").Replace("(Fm)", "").Replace("(F#)", "").
                        Replace("(F#m)", "").Replace("(G)", "").Replace("(Gb)", "").
                        Replace("(Gm)", "").Replace("(A)", "").Replace("(Ab)", "").
                        Replace("(Am)", "").Replace("(Abm)", "").Replace("(B)", "").
                        Replace("(Bb)", "").Replace("(Bm)", "").Replace("(Bbm)", "").ToLower().Trim();
                    dt.Rows.Add(dr);
                }
                catch { }
                System.Threading.Thread.Sleep(50);
            }
        }

        private void GetFiles()
        {
            Cursor = Cursors.WaitCursor;
            System.Collections.Generic.Stack<string> stack = new System.Collections.Generic.Stack<string>();
            stack.Push(PathData);
            
            while ((stack.Count > 0))
            {
                string dir = stack.Pop();
                _dir = dir;
                System.Threading.Thread thd = new System.Threading.Thread(new System.Threading.ThreadStart(AddSong)) { IsBackground = true };
                thd.Start();
                string directoryName = null;
                foreach (string directoryName_loopVariable in System.IO.Directory.GetDirectories(dir))
                {
                    directoryName = directoryName_loopVariable;
                    stack.Push(directoryName);
                }
            }
           dataGridView1.Invoke(new Action(() =>
           {
               dataGridView1.DataSource = dt;
               dataGridView1.Columns[0].Width = 200;
               dataGridView1.Columns[1].Width = 500;
               dataGridView1.Sort(dataGridView1.Columns[0], ListSortDirection.Ascending);
           }));
           System.Threading.Thread.Sleep(50);

            cri = "";
            sngDel = 0;
            t = 0;
            string s_Lyr;
            string s_Mid;
            string s_Cur;

            for (int i = 0; i < dataGridView1.RowCount - 1;i++ )
            {
                s_Lyr = dataGridView1[1, i].Value.ToString();
                s_Mid = dataGridView1[1, i].Value.ToString().ToUpper().Replace("\\NCN\\LYRICS\\", "\\NCN\\SONG\\").Replace(".LYR", ".MID");
                s_Cur = dataGridView1[1, i].Value.ToString().ToUpper().Replace("\\NCN\\LYRICS\\", "\\NCN\\CURSOR\\").Replace(".LYR", ".CUR");
                if (dataGridView1[0, i].Value.ToString().Replace(" ", "").ToUpper() == cri ||!(System.IO.File.Exists(s_Cur)) ||!(System.IO.File.Exists(s_Mid)))
                {
                    sngDel++;
                    DelFile(s_Lyr);
                    DelFile(s_Cur);
                    DelFile(s_Mid);
                }
                else
                { cri = dataGridView1[0, i].Value.ToString().Replace(" ", "").ToUpper(); }
                label1.Invoke(new Action(() => { label1.Text = "Check:" + cri + " file:" + dataGridView1[1, i].Value.ToString(); }));
                this.Invoke(new Action(() => { Text = " file:" + i + " Delete files:" + sngDel + " time:" + TimeSpan.FromSeconds((dataGridView1.RowCount - 1 - i) * t / i).ToString(@"hh\:mm\:ss"); }));
                System.Threading.Thread.Sleep(50);
            }

            Cursor = Cursors.Default;

        }




Tag : .NET, Win (Windows App), C#, VS 2012 (.NET 4.x), Windows







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-12-03 15:36:33 By : lamaka.tor View : 1129 Reply : 1
 

 

No. 1

Guest


ไม่แระ

จำได้ว่าเคยแก้ method getfile ให้

แต่ทำไมโค้ดยังเหมือนเดิม

ให้ไปใหม่ก็คงไม่เอาไปใช้อยู่ดี เสียเวลา






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-12-03 16:51:45 By : ห้ามตอบเกินวันละ 2 กระทู้
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : C# WinApp Thread ซ้อน Thread แล้วค้างครับมีวิธีไม๊ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่