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");
            }
        }
    }
  • 相关阅读:
    hdu 5446 Unknown Treasure lucas和CRT
    Hdu 5444 Elven Postman dfs
    hdu 5443 The Water Problem 线段树
    hdu 5442 Favorite Donut 后缀数组
    hdu 5441 Travel 离线带权并查集
    hdu 5438 Ponds 拓扑排序
    hdu 5437 Alisha’s Party 优先队列
    HDU 5433 Xiao Ming climbing dp
    hdu 5432 Pyramid Split 二分
    Codeforces Round #319 (Div. 1) B. Invariance of Tree 构造
  • 原文地址:https://www.cnblogs.com/top5/p/1714054.html
Copyright © 2011-2022 走看看