Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 27.02.2019
Сообщений: 66

Что не так с потоком?

27.02.2019, 15:10. Показов 1170. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть поток вот:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
constructor TChangeMonitor.Create(ASuspended: boolean; ADirectory: string;
  AScanSubDirs: boolean);
begin
  inherited Create(ASuspended);
  FDirectory := ADirectory;
  FScanSubDirs := AScanSubDirs;
  FreeOnTerminate := true;
end;
 
procedure TChangeMonitor.DoChange;
begin
  if Assigned(FOnChange) then
    OnChange(Self)
end;
 
procedure TChangeMonitor.Execute;
var
  ChangeHandle: THandle;
begin
  ChangeHandle := FindFirstChangeNotification(PChar(FDirectory), FScanSubDirs,
    FILE_NOTIFY_CHANGE_FILE_NAME);
  Win32Check(ChangeHandle <> INVALID_HANDLE_VALUE);
  try
    while not Terminated do
    begin
      case WaitForSingleObject(ChangeHandle, INFINITE) of
        WAIT_FAILED:
          Terminate;
        WAIT_OBJECT_0:
          Synchronize(DoChange);
      end;
      FindNextChangeNotification(ChangeHandle);
    end;
  finally
    FindCloseChangeNotification(ChangeHandle);
  end;
end;
Вот так с ним работаю:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Lines.Clear;
  FChangeMonitor := TChangeMonitor.Create(True, Edit1.Text, CheckBox1.Checked);
  FChangeMonitor.OnChange := OnChange;
  FChangeMonitor.Start;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  FChangeMonitor.Terminate;
end;
 
procedure TForm1.OnChange(Sender: TObject);
const
  cLogStr = '%s - Attention';
begin
  Memo1.Lines.Add(Format(cLogStr, [DateTimeToStr(Now)]));
end;
Жмякаю на первую кнопку создается поток, потом меняю имена файлов в папке и при этом в мемо показываются мои действия, если жмякнуть на вторую кнопку поток должен остановиться и все мои действия должны перестать отображаться в мемо, только вот поток не останавливается сразу после нажатия второй кнопки он останавливается только после того как я еще раз поменяю имя файла в папке. Почему так происходит? Как это исправить?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.02.2019, 15:10
Ответы с готовыми решениями:

Где и что я напутал с потоком
Добрый день , сделал поток который просто переходит по ссылкам , что загружены в accounts , но вот где то я намудрил , и гет запрос идет...

Интересно что происходит с потоком
Всем доброго времени суток, возможно это глупый вопрос, но я не знаю на его ответа. Допустим я вот так инициализирую переменную типа String...

Что делать с завершившим свою работу потоком
System.Threading.Thread MyThread1 = new System.Threading.Thread(delegate() { Metod(); }); ...

20
0 / 0 / 0
Регистрация: 27.02.2019
Сообщений: 66
28.02.2019, 12:43  [ТС]
Студворк — интернет-сервис помощи студентам
Спасибо большое! Успокоили мою душеньку
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.02.2019, 12:43

Что не так с кодом? ( пытаюсь понять, что не так? )
Есть исходный код. Hook, работает хорошо, но есть минус огромный - перестаёт писать в лог, при открытии программы\игры Фуллскрином. т.е...

Что будет,если закрыть хэндл с открытым процессом,потоком? Или это только информация?
Что будет,если закрыть хэндл с открытым процессом,потоком? Или это только информация?

И так, что не так с моим запросом на добавление записи в таблицу?
$sql = 'INSERT INTO product ' . '(name, code, price, category_id, brand, availability,' . 'description,...

Как сделать так что я мог умножать не на два числа а на 3,4,5 и так далее?
Вот код: #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main(){ float a,c; char b; skip: ...

Что в коде ни так? while не работает так, как ожидаю
Написанный код, как я думаю, должен выдавать цифры от 0 до 1000, столбиком. Но выдает начиная от 702 до 1000. Что ни так понимаю, где...


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru