Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Android Proje Donma/ Takılma Problemleri
#11
Android projede; Örneğin sunucudan çekilen data çok fazla ise; bu durum da bu hatayı alırsınız. En iyi çözüm hocalarımın bahsettiği gibi thread kullanmak..


 TThread.CreateAnonymousThread(
   procedure()
   begin
     TThread.Synchronize(TThread.CurrentThread,
       procedure()
       begin
//Çalışacak kodlar..
       end);
   end).Start;
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#12
(02-12-2024, Saat: 15:52)mcuyan Adlı Kullanıcıdan Alıntı: Android projede; Örneğin sunucudan çekilen data çok fazla ise; bu durum da bu hatayı alırsınız. En iyi çözüm hocalarımın bahsettiği gibi thread kullanmak..


 TThread.CreateAnonymousThread(
   procedure()
   begin
     TThread.Synchronize(TThread.CurrentThread,
       procedure()
       begin
//Çalışacak kodlar..
       end);
   end).Start;


Synchronize kullanımı neden hocam.
WWW
Cevapla
#13
Bir fonksiyon içerisinde farklı bir fonksiyon mevcut.
A fonksiyonu > A içinde B fonksiyonu > B içinde C fonksiyonu olan bir senaryoda;

A fonksiyonu içerisindeki B fonksiyonunu AnonymousThread olarak başlatıp buradan dönen sonucu (UI işlemi) Synchronize ile gerçekleştirdim. Bu şekilde silme işleminde takılma sorununu çözdüm. Deneme yanılma yaparak ilerliyorum.
Cevapla
#14
(02-12-2024, Saat: 15:52)mcuyan Adlı Kullanıcıdan Alıntı: Android projede; Örneğin sunucudan çekilen data çok fazla ise; bu durum da bu hatayı alırsınız. En iyi çözüm hocalarımın bahsettiği gibi thread kullanmak..


 TThread.CreateAnonymousThread(
   procedure()
   begin
     TThread.Synchronize(TThread.CurrentThread,
       procedure()
       begin
//Çalışacak kodlar..
       end);
   end).Start;

Thread'in içindeki tüm kodu Synchronize ile sarmaladığınızda aslında thread kullanmanızın bir anlamı kalmaz, çünkü tüm kod main thread üzerinde çalışmış olur. Sadece ana thread'in yönettiği ortak alanlar, görsel kontroller vb şeylere erişim yapacağınız zaman Synchronize ya da daha iyisi Queue kullanmanız gerekir. Synchronize ana thread'e işletilecek kodu iletir ve ana thread'in cevap vermesini bekler yani blocked çalışır. Ana thread'iniz oluşturduğunuz thread'i bekliyor ise, oluşturduğunuz thread içinden yapacağınız Synchronize çağrımları da ana thread'i bekleyeceği için dead-lock oluşur. Bu nedenle Queue kullanmak daha mantıklıdır.

SendMessage ve PostMessage API metodlarının farkı gibi  Wink
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#15
(04-12-2024, Saat: 19:42)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı:
(02-12-2024, Saat: 15:52)mcuyan Adlı Kullanıcıdan Alıntı: Android projede; Örneğin sunucudan çekilen data çok fazla ise; bu durum da bu hatayı alırsınız. En iyi çözüm hocalarımın bahsettiği gibi thread kullanmak..


 TThread.CreateAnonymousThread(
   procedure()
   begin
     TThread.Synchronize(TThread.CurrentThread,
       procedure()
       begin
//Çalışacak kodlar..
       end);
   end).Start;

Thread'in içindeki tüm kodu Synchronize ile sarmaladığınızda aslında thread kullanmanızın bir anlamı kalmaz, çünkü tüm kod main thread üzerinde çalışmış olur. Sadece ana thread'in yönettiği ortak alanlar, görsel kontroller vb şeylere erişim yapacağınız zaman Synchronize ya da daha iyisi Queue kullanmanız gerekir. Synchronize ana thread'e işletilecek kodu iletir ve ana thread'in cevap vermesini bekler yani blocked çalışır. Ana thread'iniz oluşturduğunuz thread'i bekliyor ise, oluşturduğunuz thread içinden yapacağınız Synchronize çağrımları da ana thread'i bekleyeceği için dead-lock oluşur. Bu nedenle Queue kullanmak daha mantıklıdır.

SendMessage ve PostMessage API metodlarının farkı gibi  Wink

Bende tam bunu merak etmiştim teşekkürler. ?
WWW
Cevapla
#16
Queue Kullandığım da data'da lost olsa veya kopma olduğu zaman düzgün çalışmadı. Mecburen sync kullandım..

Yani DB'de bi bilgiye göre devamında işlemler yaptıracağım zaman data gelmediğinde hata oluşuyor. Synchronize sağlıklı yöntem diye tecrübe ettim.
// Bilgi paylaştıkça çoğalır.. 

Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Fmx Android - Termal Yazıcı Resim Yazdırma hi_selamlar 8 575 17-10-2024, Saat: 18:21
Son Yorum: esistem
  Delphi FMX Android admar2010 6 310 26-08-2024, Saat: 14:25
Son Yorum: RAD Coder
  Rad Studio 12 ile android sdk zombi 2 217 20-08-2024, Saat: 21:00
Son Yorum: zombi
  Android 33 api sdk güncelleme [ÇÖZÜLDÜ] codder71 15 1.749 14-07-2024, Saat: 09:11
Son Yorum: RAD Coder
  Google play console Android Api hatası lazanya 3 382 01-07-2024, Saat: 19:57
Son Yorum: lazanya



Konuyu Okuyanlar: 1 Ziyaretçi