Konuyu Paylaş : facebook gplus twitter

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 Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#2
(28-08-2016, Saat: 10:19)yhackup Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba,
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.
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 Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
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 Giriş yap veya Üye OlMerhaba,
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

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Shocked Çoklu Dil Desteği Hakkında SercanTEK 10 297 28-08-2018, Saat: 13:24
Son Yorum: uparlayan
Exclamation Derleyici Direktifleri Hakkında, yhackup 8 3.216 22-08-2018, Saat: 19:52
Son Yorum: boreas
  Uses Kullanım Hakkında hi_selamlar 2 169 02-08-2018, Saat: 23:42
Son Yorum: hi_selamlar
  Chart1 kullanımı hakkında cinarbil 2 167 31-07-2018, Saat: 12:31
Son Yorum: cinarbil
  TDevBroadcastDeviceInterface hakkında. seci20 4 223 30-07-2018, Saat: 09:08
Son Yorum: Tuğrul HELVACI



Konuyu Okuyanlar: 1 Ziyaretçi