Thread Watchdog - Delphi örnek - indir

frekans50

⁵⁰
Katılım
8 Ekim 2022
Mesajlar
1,519
Mikrodenetleyici programlarından bildiğimiz Watchdog uygulamasını bilgisayar için yaptım.

Thread ile çalışırken bir şeylerin ters gitmesi ve kilitlenme durumları için yararlıdır.

Donanım kaynaklı kilitlenmeler, bu yöntemi zorunlu hale getirdi.

Çalışma şekli:

Bir thread işe başlamadan önce, bir süre sonra kendisini sonlandıracak başka bir thread başlatıyor.
İşi zamanında yapabilirse katili kendisi öldürüyor.

1681992937177.png



Kod:
unit Unit1;
....

procedure TWorker.Execute;

var
  dog: TWatchDog;

begin

  dog := TWatchDog.Create(true); // dog: kendisini öldürecek thread
  dog.th := self;
  dog.TimeTowait := 5000;
  dog.Resume;

  while not terminated do
  begin
    windows.beep(5000, 50); // "Yaşıyorum" mesajı.
    sleep(500);

    // Süre bitmeden  katilin işine son vermek isterse
    //  if vazgectim then do ThreadKill(dog); // katili öldür

  end;

end;

procedure TWatchDog.Execute;
begin
  sleep(timetowait);
  windows.Beep(3000, 500); // Süre tamam. Ateş ediyor

  if assigned(th) then
    ThreadKill(th);

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

  worker := tworker.Create(false);

end;

end.
 

Ekler

Son düzenleme:

Forum istatistikleri

Konular
8,671
Mesajlar
141,673
Üyeler
3,467
Son üye
isaayan

Son kaynaklar

Son profil mesajları

Abdullah karaoglan falcon_browning Abdullah karaoglan wrote on falcon_browning's profile.
selamın aleyküm ses sistemindeki cızırtıyı hallettınızmi
"Araştırma, ne yaptığını bilmediğinde yaptığın şeydir." - Wernher von Braun
“Kendi yolunu çizen kişi, kimsenin izinden gitmez.” – Nietzsche
Kim İslâm’da güzel bir çığır açarsa (güzel bir alışkanlık başlatırsa), onun sevabı ve kendisinden sonra ona uyanların sevapları, onların sevaplarından hiçbir şey eksilmeksizin ona da yazılır.
erdemtr55 taydin erdemtr55 wrote on taydin's profile.
Merhaba Taydin bey,
Gruba spms serisi yapıcak mısınız?
ben 3 sargılı toroid ile 2 adet flyback sürücek bir devre yapmayı düşünüyorum.size soracak sorularım vardı?
Back
Top