Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
100 puan değerinde (Threading)
#11
(30-04-2018, Saat: 12:08)yhackup Adlı Kullanıcıdan Alıntı: Benim cevap hakkım yok dimi Smile

Tabii ki var, neden olmasın Wink
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#12
Hocam mesai bitti uğraşırken Smile
WWW
Cevapla
#13
Bilgisayar başında değilim ama ilk threadin bitiminde ana threadde false bir ifin içerisinde goto ile yapılabilir gibi geldi
Cevapla
#14
(30-04-2018, Saat: 17:32)narkotik Adlı Kullanıcıdan Alıntı: Bilgisayar başında değilim ama ilk threadin bitiminde ana threadde false bir ifin içerisinde goto ile yapılabilir gibi geldi

Goto Lütfen öyle bir şey yapmayın Cry
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#15
Ben de mesai içinde ara ara bakındım ama denemelerimden en makulü bu geldi.

CPU kullanımını %35'den ancak %5'e kadar çekebildim. 
Nasıl denedim, 100 milisaniyelik paketler halinde bekleyip Application.ProcessMessages'i öyle verdim.

Başlığı okuyanlar için yazayım, xBool sonsuz döngü demeyin. basit bir senkronize ile bu değişkenden güdümleyerek threadi durdurma imkanımız daima mevcut. Smile

Ref: bu link


procedure TForm1.Button1Click(Sender: TObject);
  procedure AnaThreadDonmadanBuradaYukaridakiThreadiBekleyelim();
  Const
    iBekleMiliSaniye = 100;
  var
    Event : THandle;
  begin
    Event := CreateEvent(nil, False, False, nil);
    try
      while ( MsgWaitForMultipleObjects(1, Event, False, 100, QS_ALLINPUT) <> WAIT_TIMEOUT )
        do begin
          Application.ProcessMessages;
        end;
    finally
      CloseHandle(Event);
    end;
  end;
var
  Thrd : TThread;
  xBool: Boolean;
begin
  Thrd := TThread.CreateAnonymousThread(
    procedure
    begin
      Sleep(10000);
      xBool := False;
    end
  );
  xBool := True;
  Memo1.Lines.Add('Başladı:' + DateTimeToStr(now));
  Thrd.Start;

  while xBool do AnaThreadDonmadanBuradaYukaridakiThreadiBekleyelim();

  Memo1.Lines.Add('Bitti:' + DateTimeToStr(now));
  Memo1.Lines.Add('Thread bitti');
end;


Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#16
Üstad, tanımladığınız Event hiç bir zaman Set olmuyor ;-)
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#17
Event 'i unutmuşum orada zaten etkisiz eleman. Smile Sonradan fark ettim. öylece kaldı...
Zaten ilgili linke bakarsanız kaynağı göreceksiniz.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#18
Çok değişik bir mantık ile yaklaşsam dalga konusu olur mu? Önce onun bir önünü alayım Smile
kisisel_logo_dark.png
WWW
Cevapla
#19
(30-04-2018, Saat: 19:57)hyperxman Adlı Kullanıcıdan Alıntı: Çok değişik bir mantık ile yaklaşsam dalga konusu olur mu? Önce onun bir önünü alayım Smile

Burada o tarz bir insan bulunmaz. Bulunur ise, hemen gereği yapılır. Sen rahat ol güzel kardeşim. Herkes herşeyi bilecek, ya da doğru bilecek diye bir kaide yok. Hiçbirimiz annemizin karnında öğrenmedik.

Yalnış yapmak, doğruyu yapmak konusunda şaşılmaz isabetli bir tecrübe oluşturur. Sen buyur ;-)
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#20
Üstadım burada hem eğleniyor hem de öğreniyoruz.
Şahsen en az bildiğim konu Thread konusu. Daha önce de paylaştım en fazla 1 veya 2 paralel işlem ile sınırlı bir portföyüm var.
Tuğrul bey yıllardır bu konu üzerinde kendini geliştirmiş.
Bilmiyorum demek veya yanlış yapmak öğrenmenin temeli... Dolayısıyla yollayın kodu buraya gitsin. Smile
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla




Konuyu Okuyanlar: 1 Ziyaretçi