Yorumları: 1.499
Konuları: 83
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 12.314
Üstad
Benim çözümümü ekteki örnek proje üzerinde görebilirsiniz.
MsgWaitForMultipleObjects_Deneme.zip (Dosya Boyutu: 55,12 KB / İndirme Sayısı: 123)
Ama basit çözümü kod olarak da paylaşayım. Dikkatinizi CPU kullanımına çekmek istiyorum elbette.
while Event.WaitFor(0) = wrTimeOut do
begin
WaitMessage;
Application.ProcessMessages;
end;
Yukarıdaki koddan WaitMessage API'sini kaldırırsanız, muhtemelen %10+ bir CPU kullanımınız olur, aksi durumda %0-%1 aralığında bir CPU kullanımı olacaktır.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
Yorumları: 1.499
Konuları: 83
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 12.314
Üstad
Rica ederim, umarım işinize yarar.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
Yorumları: 859
Konuları: 9
Kayıt Tarihi: 17-11-2016
Rep Puanı: 1.774
Programcı
windows ortamını için bu güzel kodunuza teşekkür ediyorum.
Yorumları: 1
Konuları: 0
Kayıt Tarihi: 06-08-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 4
Başlangıç
23-03-2022, Saat: 14:53
(Son Düzenleme: 23-03-2022, Saat: 14:54, Düzenleyen: ercan_elo_bil.)
procedure TForm1.Button1Click(Sender : TObject);
var
Thrd : TThread;
begin
Thrd := TThread.CreateAnonymousThread(
procedure
begin
Sleep(10000);
end
);
Thrd.FreeOnTerminate:=false;
Thrd.Start;
Thrd.WaitFor;
//CPU %0 dır
Memo1.Lines.Add('Thread bitti');
FreeAndNil(Thrd);
end;
Yorumları: 1.499
Konuları: 83
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 12.314
Üstad
(23-03-2022, Saat: 14:53)ercan_elo_bil Adlı Kullanıcıdan Alıntı: procedure TForm1.Button1Click(Sender : TObject);
var
Thrd : TThread;
begin
Thrd := TThread.CreateAnonymousThread(
procedure
begin
Sleep(10000);
end
);
Thrd.FreeOnTerminate:=false;
Thrd.Start;
Thrd.WaitFor;
//CPU %0 dır
Memo1.Lines.Add('Thread bitti');
FreeAndNil(Thrd);
end;
Maalesef cevabınız doğru değil. İlk sayfaya gidip soruyu bir kere daha detaylıca okuyabilirsiniz.
"
Uygulamanızın ana thread'ini durdurmadan(kullanıcı ile etkileşimli kalmaya devam edecek şekilde); bir başka senkronizayson nesnesini ya da bir thread'i nasıl beklersiniz ?"
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...