![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 09.06.2009
Сообщений: 9
|
![]()
Здравствуйте.
Мне нужно написать такую программу: 1) Когда выбирается пункт меню "Новое окно", создается новое окно. 2) Когда выбирается пункт меню "Открыть", открывается на чтение файл и в окне показывается содержимое файла. 3) Если выбрать пункт меню "Открыть", когда в другом окне показано содержимое файла, нужно написать в окне: "Подождите..." и приостановить выполнение пока в другом окне файл не будет закрыт. 4) Когда выбирается пункт меню "Закрыть", нужно закрыть файл, а в другом окне продолжить показывать файл. Приостановка показа реализовывается с помощью объекта Mutex. Проблема в том, что при втором выполнении: WaitForSingleObject(hMutex, INFINITE); поток не ждет освобождения Mutex'а. В сообщении WM_CREATE я создаю Mutex: Код:
При выборе пункта меню я создаю потоки, в параметре я передаю им адрес структуры с HWND Edit'а(В котором будет показано содержимое файла) и wfstream File. (У каждого окна есть свой экзэмпляр этой структуры). Вот что делают эти потоки. Поток отсрытия файла: Код:
Код:
Потом я вызываю функцию WaitForSingleObject. При первом выполнении она захватывает Mutex, а при последующих должна останавливать выполнение потока до выполнения потока закрытия файла. Затем она открывает файл, а если он не существует, то создает его. Потом в строку Txt считывается содержимое файла и "вставляется" в Edit. Поток закрытия файла: Код:
Если нужно, я могу выложить полный код. Заранее благодарен. |
![]() |
![]() |
![]() |
#2 | |
Регистрация: 09.06.2009
Сообщений: 9
|
![]()
Проблема решена. Причина в том, что захват и освобождение Mutex'а нужно делать в одном потоке.
Цитата:
|
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Передача параметра с MDI родителя в MDI child через DLL | ByXalkin | Общие вопросы Delphi | 0 | 15.12.2009 17:21 |
Задача:в вижуал с++ Разработать приложение-сервер и приложение (смотри дальше сообщение) | Мила777 | Фриланс | 2 | 21.10.2009 11:05 |
mdi приложение | Михаил Юрьевич | Общие вопросы Delphi | 1 | 21.09.2009 01:01 |
MDI-приложение | Технолог | Общие вопросы Delphi | 6 | 02.05.2008 20:10 |
MDI приложение | Arsgun | Общие вопросы Delphi | 4 | 29.05.2007 12:36 |