Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.29;
Скачать: CL | DM;

Вниз

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

 
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 вся ветка

Текущий архив: 2004.01.29;
Скачать: CL | DM;

Наверх




Память: 0.44 MB
Время: 0.006 c
14-93687
SoX
2004-01-06 15:34
2004.01.29
Важные и срочные вопросы


1-93555
Ramario
2004-01-14 12:38
2004.01.29
Средняя кнопка мыши


3-93383
Silver_
2003-12-30 16:20
2004.01.29
Post После Insert запись убегает в конец. Как на месте оставить


1-93421
sashok
2004-01-16 19:34
2004.01.29
Работа с несколькими объектами


1-93530
ИМХО
2004-01-18 01:40
2004.01.29
Недопустимые символы в названии файла





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский