Thread komponent event sorunu

FireMonkey ve Mobil uygulama (iOS, Android, Windows Phone) ile ilgili sorularınızı bu foruma sorabilirsiniz.
Cevapla
Kullanıcı avatarı
codder71
Üye
Mesajlar: 117
Kayıt: 10 Tem 2010 07:41

Thread komponent event sorunu

Mesaj gönderen codder71 »

Merhaba arkadaşlar

Bir süredir üzerinde çalıştığım projemde threadden kaynaklandığını düşündüğüm bir sorunla karşılaştım. Uygulamada bir bölümde dosya transferi gerçekleştirmek istiyorum. Bunun için idtcpclient kullandım buraya kadar problem yoktu ama ne zamanki progressbar eklemek için idtcpcilent eventleri kullanmam gerekti o zaman hatalar vermeye başladı uygulama çok araştırmama rağmen sıkıntıyı bulamadım. Hatalar dosya transferi sırasında hiç bir sorun yokken donma ve uygulama kapanma şeklinde oluyor. Alta kullandığım kodları paylaşıyorum.
Hocalarımızın yardımını bekliyorum. İyi çalışmalar. :?: :idea:

Kod: Tümünü seç

  type
  TDosyacek = class(TThread)
    private
    socket:TIdTCPClient;
    udpsocket:TIdUDPClient;
    ip_cek:string;
    veri_cek:string;
    Dosyalar_cek:string;
    trkarakter:string;
    veriprogress:String;
    procedure SocketWorkBegin(Sender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Int64);
    procedure SocketWorkEnd(Sender: TObject; AWorkMode: TWorkMode);
    procedure SocketWork(Sender: TObject; AWorkMode: TWorkMode; AWorkCount: Int64);
    
    .
    .
    .
    .
    .
    
    
	constructor TDosyacek.create(ip: string; veri: string; Dosyalar:string);     
	begin
	FreeOnTerminate:=true;  
	veri_cek:=veri;
	Dosyalar_cek:=dosyalar;
	ip_cek:=ip;
	inherited Create (True); 
	udpsocket:=TIdUDPClient.Create(nil);
	socket:=TIdTCPClient.Create(nil);
	socket.OnWork:=SocketWork;
	socket.OnWorkBegin:=SocketWorkBegin;
	socket.OnWorkEnd:=SocketWorkEnd;
	socket.Host:=ip;
	socket.Port:=12672;
	socket.Connect;
	resume;
	end;
	
Cevapla