Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Tread içinde iç, içe döngü
#8
(21-11-2019, Saat: 18:22)BGNew Adlı Kullanıcıdan Alıntı: @Tuğrul HELVACI Thread ilgili kişisel yazınızı defalarca okudum. 

Hatta paylaşmış olduğunuz örnek kod üzerinden kodlarımda değişiklik yapıyorum.
Fakat aşağıdaki resimdeki hatayı alıyorum. dediğiniz gibi (gerçekten anlamadığın hususları sor, yardımcı olmaya gayret edelim.) yardımlarınızı bekliyorum.



JVbDZW.png

Örnek kodunuz:
procedure TMyThread.Execute;
begin
  inherited;
  try
    CoInitialize(nil);
    try
      // Database'e bağlan birşeyler yap..
      // yada başka bir COM nesnesi ile çalış.
    finally

    end;
  except
    on E: Exception do
    begin

    end;
  end;



Kendi kodlarım:
procedure TwendenAl.Execute;
var
  FDQ: TFDQuery;
  XMLNode: IXMLNode;
  sTitle, sLink: WideString;
  AjansUrl, AjansName: WideString;
begin
  inherited;
  try
    CoInitialize(Nil);
    FDQ := TFDQuery.Create(Nil);
    Form1.FDGUIxWaitCursor.ScreenCursor := gcrNone;
    try
      FDQ.Connection := Form1.FDConnection; // databaseden xml aldık
      FDQ.Active := False;
      FDQ.Close;
      FDQ.SQL.Clear;
      FDQ.SQL.Add('Select * From XML');
      FDQ.Prepared := True;
      FDQ.Open;
      while Not FDQ.Eof do
      begin
        AjansUrl := FDQ.FieldByName('URL').AsString;
        AjansName := FDQ.FieldByName('AJANS').AsString;
        if IsValidURL(Nil, PWideChar(AjansUrl), 0) <> S_FALSE then // Web sayfası kontrol
        begin
          Form1.XMLDocument.Active := False;
          Form1.XMLDocument.LoadFromFile(AjansUrl);
          Form1.XMLDocument.Active := True;
          XMLNode := Form1.XMLDocument.DocumentElement.ChildNodes.First.ChildNodes.FindNode('item');
          FDQ.Next;
          while XMLNode <> Nil do
          begin
            sTitle := Copy(XMLNode.ChildNodes['title'].Text, 1, 255);
            sLink := Copy(XMLNode.ChildNodes['link'].Text, 1, 255);
            XMLNode := XMLNode.NextSibling;
          end;
        end;
      end;
    finally
      Form1.XMLDocument.Active := False;
      Form1.FDGUIxWaitCursor.ScreenCursor := gcrNone;
      FDQ.Free;
      CoUnInitialize;
    end;
  except
    on E: Exception do
    begin

    end;
  end;
end;

Merhaba, öncelikle belirteyim; benim thread'ler ile ilgili sadece bir tane makalem yok. Epeyce var. Ayrıca, gerek bu sitede gerek diğer kardeş sitemizde bu hususlarda yazılan onlarca cevap var. Elbette araştırmak isteyen için her şey ortada.

Buyrun bir de bu makaleleri okuyun.

Gelgelelim paylaştığınız hata mesajına. O bir AV hatası ve çok genel bir hata. Ayrıca hangi kod satırında ne yaparken oluştuğuna dair bir şey de belirtmemişsiniz. Benim; "anlamadığın hususları sor yardımcı olalım" sözümü oldukça yanlış anlamışsınız. Sadece öğrenmek isteyene sonuna kadar kapımız açık.

Multi Threaded programlama; bir thread create edeyim, içine kod yazayım ondan sonra da çalıştırayım değildir.! İşin en önemli ve en zor kısmı senkronizasyondur. Sen de güzel kardeşim, bu hususlara hiç dikkat etmemişsin kodunda. Örneğin kodunda, Form1 üzerindeki bir connection nesnesini thread içinden kullanıyorsun. O halde bir soru sorayım sana: "Bir t zamanında; ya thread içindeki kod o connection üzerinden select sorgusu çalıştırmak isterken; ana formun üzerinden yine aynı connection üzerinden bir şeyler insert etmeye çalışırsan ne olur ?"

Tüm bu kelamlar, öğrenmek isteyenler için; maksat eleştirmek değil elbette.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla


Bu Konudaki Yorumlar
Tread içinde iç, içe döngü - Yazar: BGNew - 21-11-2019, Saat: 01:51
Tread içinde iç, içe döngü - Yazar: Tuğrul HELVACI - 21-11-2019, Saat: 09:01
Tread içinde iç, içe döngü - Yazar: esistem - 21-11-2019, Saat: 09:08
Cvp: Tread içinde iç, içe döngü - Yazar: BGNew - 21-11-2019, Saat: 10:45
Cvp: Tread içinde iç, içe döngü - Yazar: Tuğrul HELVACI - 21-11-2019, Saat: 11:13
Cvp: Tread içinde iç, içe döngü - Yazar: esistem - 21-11-2019, Saat: 12:47
Cvp: Tread içinde iç, içe döngü - Yazar: BGNew - 21-11-2019, Saat: 18:22
Cvp: Tread içinde iç, içe döngü - Yazar: Tuğrul HELVACI - 22-11-2019, Saat: 08:39

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  FMX Android, Uygulama İçinde Playstore sayfasını açtırma. hayalyilmaz43 2 1.973 12-12-2020, Saat: 20:24
Son Yorum: hayalyilmaz43
  Apache modül içinde tcp socket server (indy) kullanabilir miyim? 3ddark 1 2.188 29-01-2020, Saat: 19:07
Son Yorum: Fesih ARSLAN
  Banner reklamı uygulama içinde açma ? Mr.Developer 2 2.710 17-10-2019, Saat: 23:36
Son Yorum: Mr.Developer



Konuyu Okuyanlar: 1 Ziyaretçi