Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
ASenkron
#1
Merhabalar c sharp ta yaptıgım  bir programda Asenkron programlama yapmıstım yani bir işlem bitmeden digerine gecmiyordu.
Delphide Böyle bir sey yapabilirmiyım? Yapabilirsemde küçük bir örnek verebilirmisiniz? Tesekurler...
Cevapla
#2
Normalde senkron programlamada bir sonrakine geçmez bitmesini bekler. asenkron programlamada ise bir sonrakine geçmesini engellemek için await kullanılır. İşin teknik tarafına bakarsan asenkron fonksiyonlar farklı bir thread (c# için sanal threadler) içinde çalıştırarak benzer bir sonuç elde edersiniz. tabiki delphide 10 satırda bu işi yaparken c#'da 1-2 satırda yapılabilir. Delphi için şu adresde örnek bir konsept yapılmış: https://www.thedelphigeek.com/2012/07/as...elphi.html
Güncel versiyonlarda mevcutta olabilir. Bilen arkadaşlar yazacaktır.
Cevapla
#3
(02-09-2020, Saat: 18:19)mkysoft Adlı Kullanıcıdan Alıntı: Normalde senkron programlamada bir sonrakine geçmez bitmesini bekler. asenkron programlamada ise bir sonrakine geçmesini engellemek için await kullanılır. İşin teknik tarafına bakarsan asenkron fonksiyonlar farklı bir thread (c# için sanal threadler) içinde çalıştırarak benzer bir sonuç elde edersiniz. tabiki delphide 10 satırda bu işi yaparken c#'da 1-2 satırda yapılabilir. Delphi için şu adresde örnek bir konsept yapılmış: https://www.thedelphigeek.com/2012/07/as...elphi.html
Güncel versiyonlarda mevcutta olabilir. Bilen arkadaşlar yazacaktır.

Tesekur ederim..
Cevapla
#4
(02-09-2020, Saat: 18:19)mkysoft Adlı Kullanıcıdan Alıntı: Normalde senkron programlamada bir sonrakine geçmez bitmesini bekler. asenkron programlamada ise bir sonrakine geçmesini engellemek için await kullanılır. İşin teknik tarafına bakarsan asenkron fonksiyonlar farklı bir thread (c# için sanal threadler) içinde çalıştırarak benzer bir sonuç elde edersiniz. tabiki delphide 10 satırda bu işi yaparken c#'da 1-2 satırda yapılabilir. Delphi için şu adresde örnek bir konsept yapılmış: https://www.thedelphigeek.com/2012/07/as...elphi.html
Güncel versiyonlarda mevcutta olabilir. Bilen arkadaşlar yazacaktır.

@mkysoft sizce aşağıdaki thread kaç satırlık?
TThread.CreateAnonymousThread({prosedurel bir iş}).Start;
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#5
(02-09-2020, Saat: 20:41)Fesih ARSLAN Adlı Kullanıcıdan Alıntı:
(02-09-2020, Saat: 18:19)mkysoft Adlı Kullanıcıdan Alıntı: Normalde senkron programlamada bir sonrakine geçmez bitmesini bekler. asenkron programlamada ise bir sonrakine geçmesini engellemek için await kullanılır. İşin teknik tarafına bakarsan asenkron fonksiyonlar farklı bir thread (c# için sanal threadler) içinde çalıştırarak benzer bir sonuç elde edersiniz. tabiki delphide 10 satırda bu işi yaparken c#'da 1-2 satırda yapılabilir. Delphi için şu adresde örnek bir konsept yapılmış: https://www.thedelphigeek.com/2012/07/as...elphi.html
Güncel versiyonlarda mevcutta olabilir. Bilen arkadaşlar yazacaktır.

@mkysoft sizce aşağıdaki thread kaç satırlık?
TThread.CreateAnonymousThread({prosedurel bir iş}).Start;
Fesih Hocam belirttiginiz yere sadece prosedure yazıyoruz ? Bukadar mı ?
Cevapla
#6
(02-09-2020, Saat: 20:52)woywod Adlı Kullanıcıdan Alıntı:
(02-09-2020, Saat: 20:41)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: @mkysoft sizce aşağıdaki thread kaç satırlık?
TThread.CreateAnonymousThread({prosedurel bir iş}).Start;
Fesih Hocam belirttiginiz yere sadece prosedure yazıyoruz ? Bukadar mı ?

Evet,
Hatta harici değil, satır içi (isimsiz ) procedure de yazarak, işlemi thread içine almış olursunuz.
Ör,
TThread.CreateAnonymousThread( 
  procedure 
  begin 
     //işlemleriniz
  end
).Start;
WWW
Cevapla
#7
(02-09-2020, Saat: 21:06)Fesih ARSLAN Adlı Kullanıcıdan Alıntı:
(02-09-2020, Saat: 20:52)woywod Adlı Kullanıcıdan Alıntı: Fesih Hocam belirttiginiz yere sadece prosedure yazıyoruz ? Bukadar mı ?

Evet,
Hatta harici değil, satır içi (isimsiz ) procedure de yazarak, işlemi thread içine almış olursunuz.
Ör,
TThread.CreateAnonymousThread( 
  procedure 
  begin 
     //işlemleriniz
  end
).Start;

Vay be Süpermiş... :Smile çok Teşekür ederim..
Cevapla
#8
(02-09-2020, Saat: 21:11)woywod Adlı Kullanıcıdan Alıntı:
(02-09-2020, Saat: 21:06)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Evet,
Hatta harici değil, satır içi (isimsiz ) procedure de yazarak, işlemi thread içine almış olursunuz.
Ör,
TThread.CreateAnonymousThread( 
  procedure 
  begin 
     //işlemleriniz
  end
).Start;

Vay be Süpermiş... :Smile çok Teşekür ederim..

Daha da Süper olan tarafı cross-platform desteğinin olmasıdır. Windows, macOS, Linux, iOS ve Android platformlarında asenkron işlemleri gerçekleştirebilirsiniz.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#9
Denedim Çok güzel oldu..
Bugün Sayenizde birşey daha öğrendik.. Teşekürler...
Cevapla
#10
(02-09-2020, Saat: 22:47)woywod Adlı Kullanıcıdan Alıntı: Denedim Çok güzel oldu..
Bugün Sayenizde birşey  daha öğrendik.. Teşekürler...

CreateAnonymousThread içinden görsel objeler erişirseniz hatalar oluşur, callinuithread kullanırsanız bu sefer asenkron, kullandığınız kadar gitmiş olur, bu konuya dikkat edinki ummadık saçma hatalarla boğuşmayın, android de çok can sıkıcı olabiliyor, thread ide fazla uzun süreler meşgul etmeyin, sürekli yüksek cpu kullanımı olmasın os app yi terminate edebiliyor.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Asenkron Procedure yhackup 13 4.854 13-12-2017, Saat: 15:17
Son Yorum: yhackup



Konuyu Okuyanlar: 1 Ziyaretçi