Forum

Bildirimler
Hepsini Temizle

MultiThread

10 Yazılar
3 Üyeler
0 Likes
600 Görüntüleme
(@muratguler)
Gönderiler: 313
Honorable Member
Konu başlatıcı
 

Merhaba

Multithread ile ilgili açıklayıcı bir link verebilir misiniz ? Acil bir programı bitirmem gerekiyor ve multithreadı pek anlamış değilim. Thread içerisinde bir programın bir fonksiyonunu yerine getirmesi için program yazıyorum. Fakat programda exe hata veriyor. Bu konu hakkında bilgisi olan biri varsa yardım ederse sevinirim

 

Teşekkürler

 
Gönderildi : 24/11/2017 19:45

(@serkanates)
Gönderiler: 1281
Üye
 

Yapmak istediğiniz şeyi biraz daha detaylandırabilir misiniz ?

 
Gönderildi : 24/11/2017 21:03

(@muratguler)
Gönderiler: 313
Honorable Member
Konu başlatıcı
 

Yapmak istediğiniz şeyi biraz daha detaylandırabilir misiniz ?

 

Socket programlama yapacam. Eğer server kapalı ise client dosyaya veriyi yazacak. Eğer server açık ise dosyada veri var ise bir tane textbox var onun içerisindeki veriyi dosyaya yazacak en alta en baştaki veriyi de servera gönderecek. 

Bunu yapmak istiyorum nasıl yapabilirim ?

Teşekkürler

 

 
Gönderildi : 25/11/2017 01:20

(@serkanates)
Gönderiler: 1281
Üye
 

Bunun için neden multithread kullanmak istediniz anlamadım. Belki projenize daha uygundur ancak, datayı göndermeden önce bir handshake (karşılıklı selamlaşma) prosedürü çalıştırabilirsiniz. Sunucudan cevap (response) gelmiyor ise text dosyaya, geliyor ise datayı sunucuya gönderebilirsiniz. İkinci alternatif ise verinizi her zaman için text dosyaya yazın. Belirli aralıklarda ise sunucuya gönderin. Böylelikle veriyi istemci tarafında her zaman kayıt altına almış olursunuz. İletişim sağlandığında ise veri sunucuya gönderilir.

İyi çalışmalar.

 
Gönderildi : 27/11/2017 16:32

(@muratguler)
Gönderiler: 313
Honorable Member
Konu başlatıcı
 

Bunun için neden multithread kullanmak istediniz anlamadım. Belki projenize daha uygundur ancak, datayı göndermeden önce bir handshake (karşılıklı selamlaşma) prosedürü çalıştırabilirsiniz. Sunucudan cevap (response) gelmiyor ise text dosyaya, geliyor ise datayı sunucuya gönderebilirsiniz. İkinci alternatif ise verinizi her zaman için text dosyaya yazın. Belirli aralıklarda ise sunucuya gönderin. Böylelikle veriyi istemci tarafında her zaman kayıt altına almış olursunuz. İletişim sağlandığında ise veri sunucuya gönderilir.

İyi çalışmalar.

 

Ben zaten multithread kullanıyorum. Bir tane threadin içerisinde bağlantı açık mı kapalı mı diye her 4 saniye de bir kontrol ettiriyorum. Fakat 

baglantiKontrol = tcpsocket->waitForConnected(3000); ile 3 saniye beklediğinden dolayı o 3 saniyelik kısımda threadde çalışmasına rağmen donma
oluyor. Her biri ayrı threadde olmasına rağmen neden donuyor anlamadım. Sunucuya da mesaj gönderme derken başka bir programda gönderilen veriler
yazıyor. yani veri tabanı işlemleri gibi işlemler yok şimdilik.

 
Gönderildi : 27/11/2017 19:01

(@muratguler)
Gönderiler: 313
Honorable Member
Konu başlatıcı
 

Bunun için neden multithread kullanmak istediniz anlamadım. Belki projenize daha uygundur ancak, datayı göndermeden önce bir handshake (karşılıklı selamlaşma) prosedürü çalıştırabilirsiniz. Sunucudan cevap (response) gelmiyor ise text dosyaya, geliyor ise datayı sunucuya gönderebilirsiniz. İkinci alternatif ise verinizi her zaman için text dosyaya yazın. Belirli aralıklarda ise sunucuya gönderin. Böylelikle veriyi istemci tarafında her zaman kayıt altına almış olursunuz. İletişim sağlandığında ise veri sunucuya gönderilir.

İyi çalışmalar.

 

Ben zaten multithread kullanıyorum. Bir tane threadin içerisinde bağlantı açık mı kapalı mı diye her 4 saniye de bir kontrol ettiriyorum. Fakat 

baglantiKontrol = tcpsocket->waitForConnected(3000); ile 3 saniye beklediğinden dolayı o 3 saniyelik kısımda threadde çalışmasına rağmen donma
oluyor. Her biri ayrı threadde olmasına rağmen neden donuyor anlamadım. Sunucuya da mesaj gönderme derken başka bir programda gönderilen veriler
yazıyor. yani veri tabanı işlemleri gibi işlemler yok şimdilik.

 
Gönderildi : 27/11/2017 19:03

(@serkanates)
Gönderiler: 1281
Üye
 

Kodunuza detaylı bakmak lazım. Belki diğer arkadaşlar farklı bir yorum getirebilirler. İyi çalışmalar.

 
Gönderildi : 27/11/2017 20:33

(@birolaydugan)
Gönderiler: 867
Prominent Member
 

background worker kullanın .

 
Gönderildi : 28/11/2017 01:43

(@muratguler)
Gönderiler: 313
Honorable Member
Konu başlatıcı
 

Sorunu çözdüm. 

Multithreadde threadin başladığı metoda kodları yazmak lazımmış o zaman paralel çalışıyorlarmış. Ben başladığı zaman başka bir metoda sinyal verip çalştırıyordum. O da programdaki diğer işlemleri sıraya aldığından dolayı donma oluyormuş. Artık run metodu içerisinde çalıştırıyorum. Sorunsuz çalışıyor.

İlgilenenlere teşekkür ederim.

 
Gönderildi : 29/11/2017 13:42

(@serkanates)
Gönderiler: 1281
Üye
 

Geri bildirim için teşekkürler, iyi çalışmalar.

 
Gönderildi : 29/11/2017 14:26

Paylaş: