Сортировка данных в реальном времени - 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;
}
}
}
}
}