Сортировка данных в реальном времени - C#
Формулировка задачи:
Всем привет собственно вопрос.
Я осуществляю поиск файла по имени из текущей директории. Файлов может быть и 100 и 200 и 1000.
Поиск и я реализовал на LINQ и Regex.
Я просто перебираю все файлы которые есть и потом отсекаю ненужные по критериям.
Но проблема в том что сперва идет поиск всех файлов, а уже потом их сортировка, какие мне нужны.
Как мне сделать чтобы при поиске файлы которые нужны добавлялись в реальном времени?
Тоесть идет поиск и первый полученный файл отображается в консоли.
Мне что надо метод который сортирует вызывать в поиске в отдельном потоке и по одному значению ему передавать?
И консоль тоже в отдельном потоке вызывать?
Я просто этого не разу не делал мб что то не допонял.
Что мне прочесть чтобы это реализовать?
Решение задачи: «Сортировка данных в реальном времени»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.ComponentModel;
- using System.Threading;
- using System.IO;
- namespace BGW_Test {
- class Program {
- static BackgroundWorker worker;
- static void Main(string[] args) {
- worker = new BackgroundWorker();
- worker.WorkerSupportsCancellation = true;
- worker.DoWork += new DoWorkEventHandler(worker_DoWork);
- worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
- worker.RunWorkerAsync();
- Thread.Sleep(5000);
- worker.CancelAsync();
- Console.ReadLine();
- }
- static void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
- if (e.Cancelled) {
- Console.WriteLine("Canceled!");
- }
- }
- static void worker_DoWork(object sender, DoWorkEventArgs e) {
- DirectoryInfo info = new DirectoryInfo(@"C:\Windows");
- foreach (FileInfo fi in info.GetFiles()) {
- Thread.Sleep(500);
- Console.WriteLine("FileName: {0}", fi.Name);
- if ((sender as BackgroundWorker).CancellationPending) {
- e.Cancel = true;
- return;
- }
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д