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");
            }
        }
    }
  • 相关阅读:
    四种PHP异步执行的常用方式
    PHP 多进程和多线程的优缺点
    试着用workerman开发一个在线聊天应用
    Python代码报错看不懂?记住这20个报错提示单词轻松解决bug
    PHP面试题大全(值得收藏)
    常见排序算法(三)
    常见排序算法(二)
    常见排序算法(一)
    NumPy 学习笔记(四)
    JavaScript 事件
  • 原文地址:https://www.cnblogs.com/top5/p/1714054.html
Copyright © 2011-2022 走看看