From 116d7267cd1c2659df816900f00021b8969b6ce0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0?= Date: Tue, 2 Oct 2018 03:43:46 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20=D0=BA?= =?UTF-8?q?=D0=BD=D0=BE=D0=BF=D0=BA=D0=B0=20Start/Pause=20=D0=BC=D0=BE?= =?UTF-8?q?=D0=B6=D0=B5=D1=82=20=D0=BF=D1=80=D0=B8=D0=BE=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=B8=D1=82=D1=8C=20=D0=BF=D0=BE=D1=82=D0=BE?= =?UTF-8?q?=D0=BA=20=D0=B8=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D1=82=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D0=BE=D0=B1=D1=80=D0=B0=D1=82=D0=BD=D0=BE.=20?= =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=20resumeTask?= =?UTF-8?q?=20=D0=B2=20TaskController=20=D0=B4=D0=BB=D1=8F=20=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=BE=D1=82=D1=8B=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=B8?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fileFinder/MainForm.cs | 21 +++++++++++++++------ fileFinder/TaskController.cs | 21 ++++++++++++++------- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/fileFinder/MainForm.cs b/fileFinder/MainForm.cs index e40ac46..016310c 100644 --- a/fileFinder/MainForm.cs +++ b/fileFinder/MainForm.cs @@ -85,7 +85,6 @@ namespace fileFinder { MessageBox.Show(ex.Message, "Ошибка поиска внутри файла!"); } - _report.progress = counter; _report.currentFileUrl = item; report.Report(_report); @@ -128,11 +127,21 @@ namespace fileFinder private async void handleSearchBtn_Click(object sender, EventArgs e) { - Progress progress = new Progress(); - progress.ProgressChanged += reportProgress; - TreeNode tN = await Task.Run(() => buildResultTree(mainController, progress)); - resultViewer.Nodes.Clear(); - resultViewer.Nodes.Add(tN); + if (mainController.isStopped) + { + mainController.beginTask(); + Progress progress = new Progress(); + progress.ProgressChanged += reportProgress; + TreeNode tN = await Task.Run(() => buildResultTree(mainController, progress)); + resultViewer.Nodes.Clear(); + resultViewer.Nodes.Add(tN); + } else if (mainController.isPaused) + { + mainController.resumeTask(); + } else + { + mainController.pauseTask(); + } } public async Task fillChildNode (TreeNode node, String item) diff --git a/fileFinder/TaskController.cs b/fileFinder/TaskController.cs index 09588c6..04b6d01 100644 --- a/fileFinder/TaskController.cs +++ b/fileFinder/TaskController.cs @@ -9,17 +9,24 @@ namespace fileFinder class TaskController { public bool isPaused { get; private set; } - public bool isFinished { get; private set; } + public bool isStopped { get; private set; } public TaskController () { isPaused = false; - isFinished = false; + isStopped = true; } - public bool pauseTask() + public bool beginTask () { - if (!isPaused && !isFinished) + isPaused = false; + isStopped = false; + return true; + } + + public bool pauseTask () + { + if (!isPaused && !isStopped) { isPaused = true; return true; @@ -29,7 +36,7 @@ namespace fileFinder public bool resumeTask () { - if (isPaused && !isFinished) + if (isPaused && !isStopped) { isPaused = false; return true; @@ -39,9 +46,9 @@ namespace fileFinder public bool stopTask () { - if (!isFinished) + if (!isStopped) { - isFinished = true; + isStopped = true; return true; } else return false;