Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];

Вниз

Синхронизация, семафор, мьютекс   Найти похожие ветки 

 
lexx777   (2003-11-21 23:23) [0]

Мне нужно выполнить следуюющее:
Есть 2 приложения.
Каждое приложение выполняет отчет до пяти, а затем ждет, пока и другое приложение сосчитает до пяти. Процесс повторяется снова и снова.

С помощью мьютекса синхронизация работает, а с семафором нет.

Вот код
...

var
Form1: TForm1;
hSemaphore : THandle;
f1: boolean;
zAppName: array[0..512] of char;
...

procedure TForm1.ButtonCreateSem2Click(Sender: TObject);
begin
StrPCopy(zAppName, "TestS");
hSemaphore:=CreateSemaphore(nil,1, 1, zAppName);

if hSemaphore = 0 then
begin
ShowMessage(SysErrorMessage(GetLastError));
exit
end;
Edit1.Text:= IntToStr(hSemaphore);
end;

procedure TForm1.ButtonStartShet2Click(Sender: TObject);
var z: byte;

begin
z:=0;
f1:= false;
While (not f1) do
begin

Memo1.Clear;
inc(z);
Memo1.Lines.Add(IntToStr(z));
Edit1.Text:= IntToStr(z);
Application.ProcessMessages;
Sleep(1000);

If (z Mod 5) = 0 then
begin
ReleaseSemaphore(hSemaphore, 1 , nil);
WaitForSingleObject(hsemaphore, INFINITE);

end;
End;
ReleaseSemaphore(hSemaphore, 1 , nil);
end;

procedure TForm1.ButtonStopSchet2Click(Sender: TObject);
begin
f1:=true;
end;

У обоих приложений код идентичен. Что я делаю не так?


 
Nero Wolfe   (2003-11-21 23:41) [1]

Попробуй Linux поизучать... Что такое Pipe, семафоры Дейкстры, сообщения. Может, поможет ;)


 
lexx777   (2003-11-22 00:26) [2]

Советую почитать Э. Таненбаум "Совр. ОС", Дж. Рихтер Создание эффективных WIN32-приложений с учетом специфики 64-разрядной версии Windows.
Maxwell? Linux Core Kernel Commentary.


 
Игорь Шевченко   (2003-11-22 01:08) [3]

Попробуй

hSemaphore:=CreateSemaphore(nil, 0, 1, zAppName);



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.006 c
1-93446
qwerty2
2004-01-16 13:02
2004.01.29
Как захлопнуть DBLookupComboBox?


14-93685
kaif
2004-01-05 02:01
2004.01.29
---|Ветка была без названия|---


9-93314
pasha676
2003-07-17 09:52
2004.01.29
Пересечение 3D объектов и лучей в GLScene


6-93606
gs
2003-11-26 02:42
2004.01.29
Всем Hi. Подскажите можно как-нибудь переносить свои фаилы на ...


11-93413
BelchonokH
2003-05-08 23:38
2004.01.29
Глюк с кнопкой TKOLButtonOrigin





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский