Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
399 / 318 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
.NET 4.x

Остановика/возобновление работы программы

02.10.2014, 16:55. Показов 1820. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята, а как можно остановить и возобновить работу программы?
Пришла сейчас в голову мысль, а что если теоретически программе бы нужно было обрабатывать очень много файлов и возникла бы потребность на время остановить программу, а через какое-то время возобновить работу с того места, где была сделана пауза.

Допустим вот код:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim Path As String = "C:\Users\User\Desktop\Новая папка (4)\"
        Dim i1 As Integer
        Dim i2 As Integer
        Dim B As New List(Of Byte)
        Dim R As New Random
 
        If Not Dir(Path & "Мой файл.txt") = "" Then
 
            For i1 = 1 To 7
 
                If Dir(Path & i1 & ".txt") = "" Then
                    IO.File.Copy(Path & "Мой файл.txt", Path & i1 & ".txt")
 
                    B = New List(Of Byte)
                    R = New Random
                    For i2 = 0 To 9 '10 bytes
                        B.Add(CByte(R.Next(0, 256)))
                    Next i2
                    My.Computer.FileSystem.WriteAllBytes(Path & i1 & ".txt", B.ToArray, True)
                End If
            Next i1
        End If
    End Sub
Как можно приостановить и возобновить работу данного кода?

Нашел некий Thread.Sleep(1000), но не пойму как его внедрить в указанный выше код. Или я возможно не то что-то нашел и есть другие методы? Еще смущает то, что в Thread.Sleep(1000) необходимо указывать время в миллисекундах на которое будет сделана остановка. А если неизвестно на какое время необходима пауза, то как быть?
Буду благодарен за любую помощь.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.10.2014, 16:55
Ответы с готовыми решениями:

Возобновление работы закрытого окна
Суть проблемы такова: есть окно, содержащее в себе какую-то информацию, необходимо реализовать возможность его закрытия с возможностью...

Приостановка и возобновление работы функции
Как можно реализовать приостановку работы функции по нажатию на кнопки и вощобновить работу по нажатию этой или другой кнопки?

Возобновление работы DFS-R
Здравствуйте Когда то было 2 КД сервера с перенаправленными папками в одной сети. Между ними работали DFS, DFSR с этими папками. ...

9
 Аватар для Серж_87
1303 / 509 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
02.10.2014, 18:38
VB.NET
1
exit sub
но это полная остановка вроде как
0
 Аватар для Fragus
37 / 37 / 10
Регистрация: 16.09.2014
Сообщений: 167
02.10.2014, 19:30
Остановка на определенном моменте это.Вот как продолжить после этого программу остается загадкой
1
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
02.10.2014, 19:34
Вот так взять и остановить - едва ли получится без костылей.
В данном случае рассматривается прерывание цикла.
При этом прерывании нужно запоминать счетчик последней итерации, а при продолжении цикл начинать с нее.
0
 Аватар для Hemicide
121 / 114 / 62
Регистрация: 27.07.2014
Сообщений: 225
02.10.2014, 19:37
Ничего загадочного, код в поток, у потоков есть свойства позволяющие приостановить и возобновить работу.
0
 Аватар для Серж_87
1303 / 509 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
02.10.2014, 19:47
Памирыч, у меня такая мысль вначале тоже созреда (счетчик вести, а потом с нужного стартовать). Да подумал есть наверно более правильные и готоые решания
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
02.10.2014, 20:04
Точно, еще же эти потоки, забыл я про них.

Хм, а что - если прервать поток прямо когда в файл будут писаться байты, можно ли добиться случая когда запишется только часть, т.е. копы ворвутся в самый разгар вечеринки на середине записи
0
399 / 318 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
02.10.2014, 20:28  [ТС]
Еще что самое фиговое, на забугорных форумах народ пишет, что крайне не рекомендуется использовать в потоках Suspend, если точнее, то Thread.Suspend() Мол в таком случае можно запросто словить баги, т.к. не контролируется то, что сейчас делает поток и при попытке возобновления работы программы может произойти крах/баг/...опа . Фиговость в том, что почти все найденный мною примеры используют Suspend().
В общем читаю пока литературу и курю форумы. Пока понял одно, что однозначно проще всего обернуть в поток, но как это правильно сделать я пока не понял.
0
399 / 318 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
02.10.2014, 21:18  [ТС]
Всё верно. Вот откопал в MSDN про Suspend.
1
 Аватар для Hemicide
121 / 114 / 62
Регистрация: 27.07.2014
Сообщений: 225
02.10.2014, 21:41
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Дядя Корней, В таком случае в поток вводится переменная-переключатель, Когда она равна True твой код выполняется, когда False, нет. Поток работает всегда.
Если хочешь реальной приостановки, глянь в сторону EventWaitHandle
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.10.2014, 21:41
Помогаю со студенческими работами здесь

Возобновление работы системы
Последняя попытка возобновления работы системы из прежнего места была неудачно попытаться возобновить системы еще раз? (Сделайте выбор,...

Возобновление работы потока в AsyncTask
Здравствуйте помогите найти решение. Есть AsyncTask в doInBackground крутится таймер, задача состоит в том что бы этот таймер...

Пауза/возобновление работы потока
драсте подскажите как сделать шоб поток в определеном месте остановился а в нужный момент команда с основнова процеса сняла этот поток с...

Пауза и возобновление работы по нажатию клавиши
Здравствуйте. Необходимо реализовать паузу в цикле при нажатии на клавишу и продолжение программы при повторном нажатии, при этом не...

Пауза и ручное возобновление работы скрипта
Привет. Есть готовый скрипт, необходимо добавить паузу в определенное место в коде, но возобновление работы скрипта требуется вручную....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru