zoukankan      html  css  js  c++  java
  • C#多线程delegate委托方式读取多文件到同一个文本框显示

    今天,有个网友,提问:

    指定目录中有若干个很小的文本文件,现在需要使用多线程进行读取。

    一个文件一个线程或设置共有10个线程之类的方式都可以。

    把读取的文本全部追加到窗口中的指定编辑框中,只有一个编辑框,都写在这个里面,不分顺序,换行即可。

    我用委托的方式,写了下面的解决方法:

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

    namespace MultiThread
    {
    public partial class Form1 Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
    using (FolderBrowserDialog fbd = new FolderBrowserDialog())
    {
    fbd.Description = "选择要多线程读取文件的路径";
    fbd.ShowNewFolderButton = false;
    if (fbd.ShowDialog(this) == DialogResult.OK)
    {
    DirectoryInfo di = new DirectoryInfo(fbd.SelectedPath);
    foreach (FileInfo fi in di.GetFiles("*.txt"))
    {
    Thread t = new Thread(this.InvokeThread);
    t.Start(fi.FullName);
    }
    }
    }
    }

    private delegate void ReadFile(object filePath);

    private void InvokeThread(object filePath)
    {
    if (this.InvokeRequired)
    {
    this.Invoke(new ReadFile(ReadFileContent), filePath);
    }
    else
    {
    ReadFileContent(filePath);
    }
    }


    private void ReadFileContent(object filePath)
    {
    this.textBox1.AppendText(File.ReadAllText(filePath.ToString(), Encoding.Default));
    this.textBox1.AppendText("\r\n");
    }
    }
    }
  • 相关阅读:
    帮Netpole Review了一下RichEditor控件
    WawaKMv1命名空间.rtf
    WawaKMV1需求变更.rtf
    WawaKMV1技术难点.rtf
    WawaKMV1工具栏设计.rtf
    通讯录相关需求分析
    WawaKMV1Urtal Recall分析.rtf
    WawaKM:关于批量抓图的需求分析及设计
    图片相关的需求分析
    蛙蛙郑重推荐您使用firefox浏览器
  • 原文地址:https://www.cnblogs.com/wangchuang/p/2918253.html
Copyright © 2011-2022 走看看