powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Корректно завершить работу приложения.
12 сообщений из 12, страница 1 из 1
Корректно завершить работу приложения.
    #39395126
csprogrammist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть необходимость при завершении работы приложения оповещать пользователя о наличии работаюших фоновых потоках и прочих подобных ньюансах, при которых не следует завершать работу приложения. Как отследить наличие таких моментов?
...
Рейтинг: 0 / 0
Корректно завершить работу приложения.
    #39395180
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если приложение работает с документом, то определять наличие изменений.
Если приложение в процессе какой-то работы, то фиксировать некоторое состояние приложения/процесса "в работе".

Все через логику, короче
...
Рейтинг: 0 / 0
Корректно завершить работу приложения.
    #39395209
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
csprogrammist,

я в своё время особо не заморачивался...

есть основная форма:
Код: c#
1.
public partial class MainForm : Form


с неё приложение стартует:
Код: c#
1.
Application.Run(new MainForm());


пользователь запускает фоновые потоки и видит прогресс по ним в отдельном окне (форме)
соответсвенно при закрытии основной формы сл. проверка:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
protected override void OnClosing(CancelEventArgs e)
{
    if (Application.OpenForms.Count > 0)
    {
        e.Cancel = true;
    }

    base.OnClosing(e);
}
...
Рейтинг: 0 / 0
Корректно завершить работу приложения.
    #39395321
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
csprogrammistКак отследить наличие таких моментов?
кодом, кодом....
...
Рейтинг: 0 / 0
Корректно завершить работу приложения.
    #39395329
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилcsprogrammistКак отследить наличие таких моментов?
кодом, кодом....
Вот запустил простое консольное приложение, таск менеджер показывает 8 потоков. Как отделить ос от тефтелей?
...
Рейтинг: 0 / 0
Корректно завершить работу приложения.
    #39395434
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВВот запустил простое консольное приложение, таск менеджер показывает 8 потоков. Как отделить ос от тефтелей?
Каких ос от каких тефтелей? таск менеджер показывает количество unmanaged потоков, несколько которых запросто может родить один managed поток.
...
Рейтинг: 0 / 0
Корректно завершить работу приложения.
    #39395519
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВИзопропилпропущено...

кодом, кодом....
Вот запустил простое консольное приложение, таск менеджер показывает 8 потоков. Как отделить ос от тефтелей?
ты о своих потоках беспокоишься?
...
Рейтинг: 0 / 0
Корректно завершить работу приложения.
    #39395543
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
csprogrammistКак отследить наличие таких моментов?

Фиксировать и отслеживать. Конкретно как, приводи конкретный код.
...
Рейтинг: 0 / 0
Корректно завершить работу приложения.
    #39395573
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныЕвгенийВВот запустил простое консольное приложение, таск менеджер показывает 8 потоков. Как отделить ос от тефтелей?
Каких ос от каких тефтелей? таск менеджер показывает количество unmanaged потоков, несколько которых запросто может родить один managed поток.
Чего?
...
Рейтинг: 0 / 0
Корректно завершить работу приложения.
    #39395598
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилЕвгенийВпропущено...

Вот запустил простое консольное приложение, таск менеджер показывает 8 потоков. Как отделить ос от тефтелей?
ты о своих потоках беспокоишься?
Как отследить, что завершилось?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Random r = new Random();

            var trds = Enumerable.Range(0, 1000)
                 .Select(_ =>
                 new Thread(() =>
                 {
                     var i = r.Next(10, 100000);
                     for (var j = 0; j < 10; j++)
                     {
                         Thread.Sleep(i);
                     }
                 }))
                 .ToList();
            trds.ForEach(t => t.Start());
...
Рейтинг: 0 / 0
Корректно завершить работу приложения.
    #39395691
Rocketeer88888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВИзопропилпропущено...

кодом, кодом....
Вот запустил простое консольное приложение, таск менеджер показывает 8 потоков. Как отделить ос от тефтелей?
Сам храни значимые для тебя потоки, формы и прочее в специальных списках, а когда надо закрыться - проверяй списки и выдавай алерты. Короче, как Скиана написал. Создал форму или поток - в список. Завершился поток - из списка.

ЕвгенийВИзопропилпропущено...

ты о своих потоках беспокоишься?
Как отследить, что завершилось?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Random r = new Random();

            var trds = Enumerable.Range(0, 1000)
                 .Select(_ =>
                 new Thread(() =>
                 {
                     var i = r.Next(10, 100000);
                     for (var j = 0; j < 10; j++)
                     {
                         Thread.Sleep(i);
                     }
                 }))
                 .ToList();
            trds.ForEach(t => t.Start());


Делегат, который в поток отправляешь, должен иметь код в начале регистрации себя в списке важных потоков, а в конце - исключения себя из этого списка. Как самый простой вариант. Либо мутить события на кастомный класс, что-то типа такого .
...
Рейтинг: 0 / 0
Корректно завершить работу приложения.
    #39395885
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Не пользователь должен решать что надо завершить
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Корректно завершить работу приложения.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]