Ilyas Zahir Ответов: 2

Кнопка остановки и запуска C#


Эй, я сделал кнопку "Пуск", и она запускает действие или работу, которую я хочу выполнить в своей программе
и есть кнопка стоп, но если моя программа работает, я не могу получить доступ к форме, чтобы нажать кнопку стоп
есть ли вообще возможность сделать доступ к форме во время работы возможным ?

Что я уже пробовал:

как остановить поток во время работы программы ?

F-ES Sitecore

Это довольно фундаментальный аспект программирования форм, он помогает понять концепцию потоков и тот факт, что пользовательский интерфейс обновляется в "основном" потоке, и если вы используете этот поток для "выполнения работы", то пользовательский интерфейс не может функционировать одновременно, поэтому никаких обновлений форм и событий нажатия кнопок нет.

Как упоминалось в решениях, вам нужно выполнить работу в отдельном потоке. Это станет более сложным, если этот поток должен каким-либо образом обновить пользовательский интерфейс, поскольку фоновые потоки не могут обновить пользовательский интерфейс напрямую, так как он работает в другом потоке.

Во всяком случае, взгляните на это, оно объясняет все эти вещи с помощью примеров кода

https://msdn.microsoft.com/en-us/library/ms951089.aspx

Не уверен, что есть более современные способы справиться с этим.

2 Ответов

Рейтинг:
2

Thomas Nielsen - getCore

Вместо использования фонового рабочего потока, который является своего рода старой школой, хотя, по общему признанию, он работает довольно хорошо, вам следует рассмотреть возможность использования "задачи"

Задачи в .net можно ожидать и отменять довольно легко

Отмена Задачи | Microsoft Docs[^]


Рейтинг:
1

an0ther1

Взгляните на класс BackgroundWorker
Класс MSDN BackgroundWorker (System.ComponentModel)[^]
Ссылка предоставит вам ссылку на класс и примеры

с уважением


Ilyas Zahir

спасибо < 3

an0ther1

Не беспокойтесь, если это решит ваш вопрос, пожалуйста, отметьте его как ответ

с уважением