Konuyu Oyla:
  • Derecelendirme: 4/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
AsyncTask Hakkında
#1
Merhaba,
Androidde yaptığım bir ihtiyaç duyuyorum ben arkaplanda işlem yaparken arayüzün hiçbir şekilde donmamasını , veya kullanıcının bunu hissetmemesini istiyorum uygulamanın akıcılığı açısından.
Veya kullanıcının işlem yaptığı anda başka bir işlem yapmasını istemediğimde, işlem yaparken ekrana bir animasyon koyarak bekletiyorum.

Delphide Bu işlemler nasıl yapılır ?

Programa tıkladığında kullanıcı adı şifre alanı hızla gelsin mesela , eğer bir işlem yapıyorsa da arka planda yapsın, veya yorucu bir işlem yaparken yanıt vermiyora düşmesi yerine, ön tarafa bir animasyon koyarak onu beklemesini nasıl sağlıyorsunuz.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
WWW
Cevapla
#2
(28-08-2016, Saat: 10:19)yhackup Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Merhaba,
Androidde yaptığım bir ihtiyaç duyuyorum ben arkaplanda işlem yaparken arayüzün hiçbir şekilde donmamasını , veya kullanıcının bunu hissetmemesini istiyorum uygulamanın akıcılığı açısından.
Veya kullanıcının işlem yaptığı anda başka bir işlem yapmasını istemediğimde, işlem yaparken ekrana bir animasyon koyarak bekletiyorum.

Delphide Bu işlemler nasıl yapılır ?

Programa tıkladığında kullanıcı adı şifre alanı hızla gelsin mesela , eğer bir işlem yapıyorsa da arka planda yapsın, veya yorucu bir işlem yaparken yanıt vermiyora düşmesi yerine, ön tarafa bir animasyon koyarak onu beklemesini nasıl sağlıyorsunuz.

Sorunuzun kısa ve öz cevabı Thread.

Aşağıdaki linklerden istifade edebilirsiniz.
  • Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
  • Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
  • Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
  • Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
  • Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#3
Teşekkürler bu konuyu inceleyeceğim.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
WWW
Cevapla
#4
Merhaba,
Son dönemlerde adını sıkça duyduğumuz Paralel Programlama (Parallel Programming) yavaş yavaş bizim (Delphi) de literatürümüze girmeye başladı. Belirtmiş olduğunuz kapsamda System.Threading referansı içerisinde yer alan TTask sınıfı işinizi görecektir. Tuğrul Hocamızın da belirttiği linklerde bir çok alternatif yöntem kullanılabilir.

TTask sınıfının genel kullanımına bir örnek;

Uses bölümüne eklenecek referans
Uses
 System.Threading;

Örnek Thread Yapısı
  TTask.Run(
   procedure
   begin
     // Ana Thread işlemimiz
     TThread.Synchronize(Nil,
       procedure
       begin
         // Yapılan ana işlem içerisinde eşzamnlı çalışacak tali bir iş
       end);
   end);

Aynı işlemi İsimsiz (Anonymous) thread'lar ile de yapabilirsiniz.

Örneğin, Delphi Can formumuzun HTML kodlarını AnonymousThread ile alalım:
Uses 
 System.Threading, System.Net.URLClient, System.Net.HttpClient

....

  TThread.CreateAnonymousThread(
   procedure
   var
     strHTML: TStringStream;
     strHttp: THttpClient;
   begin
     strHttp := THttpClient.Create;
     strHTML := TStringStream.Create;
     try
       strHttp.Get('http://www.DelphiCan.com', strHTML);
       TThread.Synchronize(nil,
         procedure
         begin
           Memo1.Text := strHTML.DataString;
         end);
     finally
       strHttp.free;
       strHTML.free;
     end;
   end).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
(29-08-2016, Saat: 17:17)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Merhaba,
Son dönemlerde adını sıkça duyduğumuz Paralel Programlama (Parallel Programming) yavaş yavaş bizim (Delphi) de literatürümüze girmeye başladı. Belirtmiş olduğunuz kapsamda System.Threading referansı içerisinde yer alan TTask sınıfı işinizi görecektir. Tuğrul Hocamızın da belirttiği linklerde bir çok alternatif yöntem kullanılabilir.

TTask sınıfının genel kullanımına bir örnek;

Uses bölümüne eklenecek referans
Uses
 System.Threading;

Örnek Thread Yapısı
  TTask.Run(
   procedure
   begin
     // Ana Thread işlemimiz
     TThread.Synchronize(Nil,
       procedure
       begin
         // Yapılan ana işlem içerisinde eşzamnlı çalışacak tali bir iş
       end);
   end);

Aynı işlemi İsimsiz (Anonymous) thread'lar ile de yapabilirsiniz.

Örneğin, Delphi Can formumuzun HTML kodlarını AnonymousThread ile alalım:
Uses 
 System.Threading, System.Net.URLClient, System.Net.HttpClient

....

  TThread.CreateAnonymousThread(
   procedure
   var
     strHTML: TStringStream;
     strHttp: THttpClient;
   begin
     strHttp := THttpClient.Create;
     strHTML := TStringStream.Create;
     try
       strHttp.Get('http://www.DelphiCan.com', strHTML);
       TThread.Synchronize(nil,
         procedure
         begin
           Memo1.Text := strHTML.DataString;
         end);
     finally
       strHttp.free;
       strHTML.free;
     end;
   end).Start;

 Küçük bir ekleme yapayım. Mümkün mertebe Synchronize kullanmayın onun yerine Queue kullanın. Aksi durumda deadlock yaşayabilirsiniz.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  IDE çoklu monitör kullanımı hakkında adelphiforumz 2 221 10-07-2019, Saat: 12:45
Son Yorum: adelphiforumz
  GarantiBBVA SFTP işlemleri hakkında adelphiforumz 4 350 09-07-2019, Saat: 10:43
Son Yorum: r3n4m3
  read ve write kullanımı hakkında alisahin 3 369 21-05-2019, Saat: 14:57
Son Yorum: alisahin
  Enum da CustomAttribute erişimi hakkında kodamelesi 3 362 25-04-2019, Saat: 16:31
Son Yorum: kodamelesi
  SetForegroundWindow API'si hakkında yhackup 7 559 25-04-2019, Saat: 11:34
Son Yorum: yhackup



Konuyu Okuyanlar: 1 Ziyaretçi