allyc

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Text;
 7 using System.Windows.Forms;
 8 using System.IO;
 9 using System.Threading;
10 
11 namespace MultiThread
12 {
13     public partial class Form1 : Form
14     {
15         public Form1()
16         {
17             InitializeComponent();
18         }
19 
20         private void button1_Click(object sender, EventArgs e)
21         {
22             using (FolderBrowserDialog fbd = new FolderBrowserDialog())
23             {
24                 fbd.Description = "选择要多线程读取文件的路径";
25                 fbd.ShowNewFolderButton = false;
26                 if (fbd.ShowDialog(this) == DialogResult.OK)
27                 {
28                     DirectoryInfo di = new DirectoryInfo(fbd.SelectedPath);
29                     foreach (FileInfo fi in di.GetFiles("*.txt"))
30                     {
31                         Thread t = new Thread(this.InvokeThread);
32                         t.Start(fi.FullName);
33                     }
34                 }
35             }
36         }
37 
38         private delegate void ReadFile(object filePath);
39 
40         private void InvokeThread(object filePath)
41         {
42             if (this.InvokeRequired)
43             {
44                 this.Invoke(new ReadFile(ReadFileContent), filePath);
45             }
46             else
47             {
48                 ReadFileContent(filePath);
49             }
50         }
51 
52 private void ReadFileContent(object filePath)
53         {
54             this.textBox1.AppendText(File.ReadAllText(filePath.ToString(), Encoding.Default));
55             this.textBox1.AppendText("\r\n");
56         }
57     }
58 }

posted on 2013-09-05 20:46  allyc  阅读(3281)  评论(0)    收藏  举报