MQL'de asenkron ve çok iş parçacıklı programlama - sayfa 5

 
Andrey Pogoreltsev :

Eh, hala senkronizasyon nesneleri üzerinde çalışmak zorunda olduğunuz gerçeğinden bahsetmiyorum. Ona ihtiyacın var mı? Gerekirse, bir dll yazmak sizin için çok basit bir iştir.

Asıl sorun, "...hala çalışılması gerekiyor" değil.

Asıl sorun, tüm bu çanlar ve ıslıklar ne kadar çok olursa, hesaplanması çok zor olan aldatıcı hatalar alma tehlikesi o kadar büyük olur.

Ve geliştiriciler için - tüm bunlar ek bir baş ağrısıdır.

Artı - değerlendirmek iyi olur - bu çoklu iş parçacığına gerçekten kaç kişinin ihtiyacı var?

 
Georgiy Merts :

Asıl sorun, "...hala çalışılması gerekiyor" değil.

Asıl sorun, tüm bu çanlar ve ıslıklar ne kadar çok olursa, hesaplanması çok zor olan aldatıcı hatalar alma tehlikesi o kadar büyük olur.

Ve geliştiriciler için - tüm bunlar ek bir baş ağrısıdır.

Artı - değerlendirmek iyi olur - bu çoklu iş parçacığına gerçekten kaç kişinin ihtiyacı var?

Peki o zaman, saban ve at ve ileri ... sabah şafağına doğru ...

 
Roman :

Mql'de böyle bir olasılığın olmaması üzücü,
bu nedenle, asenkron programlama için standart mql işlevleri geliştirmek için yönetime bir teklif yapıyorum ,
akışlarda zaman sorunları ve her şeyden önce güvenlik vardır.
Eşzamansız mod için güvenlik engeli olmadığını düşünüyorum.

Dün kayınvalidemi ziyaret ettim, girişte onarımları var - duvarları boyarlar, siz de mi? - pencereleri aç, odaları havalandır!

Roma :

Hiçbir şey karışmaz! Saf WinAPI kullanmak için bir görev vardı. Özel dll yok!

Konu mql'de çok iş parçacıklı programlama sorununu tartışmak için oluşturuldu, bugün bir tür olumsuz tavrınız var mı, oluşturduğum konuda nasıl bir flood?

neden WinAPI? Size bir sır vereceğim, CLR ayrıca "saf Windows", .NET kitaplıkları için "akıllı" işlev içe aktarmaları için yerel destek yakında eklenecek, WinAPI'yi biliyorsunuz, ancak .NET'te bir iş parçacığı oluşturamıyor musunuz? ))))))


Roma :

Lütfen bu tür yorumlardan kaçının.

TAMAM
 
Dmitry Fedoseev :

Peki o zaman, saban ve at ve ileri ... sabah şafağına doğru ...

Dmitry, pulluk ve atla yetiştirmeyi ve hasat etmeyi denedin mi?

Daha az incelik ve hata olasılığı yoktur. Ama mahsul ölürse ve sen açlıktan ölürsen, hata yapmak çok daha pahalıya mal olur...

Her yerde sorunlar var ve alınan fayda ile harcanan çabayı dengelemek gerekiyor. Özellikle, burada bu çoklu iş parçacığı ile. Gerçekten nerede gerekli olduğunu anlamıyorum.

 

Konu başlatıcıya sadece ilk programımı saf WinAPI'de yazmasını önermedim https://www.mql5.com/ru/forum/318593/page2#comment_12565043

internette bu konuyla ilgili pek çok bilgi var - önce hazır başlık dosyalarını (windows.h, vb.) kullanarak yazıyoruz, sonra bu başlık dosyalarını kaldırıyoruz ve aziz saf WinAPI'ye yaklaşıyoruz = kendi büyük kodumuz bir işlemi ve olayları alıp işleyebilen bir pencereyi kaydedebilen ayak örtüsü .... ve bu sadece yararlı hiçbir şey yapamayan banal bir pencere olacaktır, ancak bu iş için ne kadar yapmanız gerektiğine dair bir anlayış olacaktır. WinAPI kullanarak


Yaklaşık 15 yıl önce denemiştim (tam hatırlamıyorum, hala çevirmeli bağlantı olduğunu hatırlıyorum) ve bu yol herhangi bir “Annemle programcıyım” dan geçmeli, böylece sorular ve verme arzusu var. sistem programcılarına tavsiye - derleyici geliştiricileri ortadan kalkar

"Bu şekilde gittikten sonra", onlar için derleyiciler ve kitaplıklar yazan yüzlerce sistem programcısının muazzam çalışması hemen netleşecek, herhangi bir uygulama programcısının yardımı okuyabilmesi için neden hız için uygun kullanıcı işlevselliğinin sağlandığı açık olacaktır. ve "2 tıklamada" istenen sonucu elde edin


Not: genel olarak, deneyim, bilgi ve nitelik eksikliği başka bir bilişsel çarpıtmaya neden oldu))))

 
Georgiy Merts :

Asıl sorun, "...hala çalışılması gerekiyor" değil.

Asıl sorun, tüm bu çanlar ve ıslıklar ne kadar çok olursa, hesaplanması çok zor olan aldatıcı hatalar alma tehlikesi o kadar büyük olur.

Ve geliştiriciler için - tüm bunlar ek bir baş ağrısıdır.

Artı - değerlendirmek iyi olur - bu çoklu iş parçacığına gerçekten kaç kişinin ihtiyacı var?

Yukarıda öğrendiğimiz gibi, örneğin soket düzeyinde özel ağ isteklerinin asimetrisine ihtiyacımız var.

Ama burada her şey WinAPI aracılığıyla çözülüyor. Botun çalışması, üzerinde çalıştığı makinenin performansına bağlıysa, bu özellikle özel sunucular için talihsiz bir durumdur :)
 
Georgiy Merts :

Dmitry, pulluk ve atla yetiştirmeyi ve hasat etmeyi denedin mi?

Daha az incelik ve hata olasılığı yoktur. Ama mahsul ölürse ve sen açlıktan ölürsen, hata yapmak çok daha pahalıya mal olur...

Her yerde sorunlar var ve alınan fayda ile harcanan çabayı dengelemek gerekiyor. Özellikle, burada bu çoklu iş parçacığı ile. Gerçekten nerede gerekli olduğunu anlamıyorum.

Ne saban ve at? Her zamanki kürek kullanımda.

Yetişkin bir şekilde ciddiye alırsanız, asenkron çalışma için ayrı bir iş parçacığına koymaktan zarar vermeyecek ilk görev WebRequest , ancak genel olarak yapacak ve böyle yaşayabilirsiniz.

İkinci görev, sinir ağlarını eğitmek, uzmana entegre edilmiş otomatik optimizasyon. Bir Uzman Danışmandan kolayca akışlar oluşturmak mümkün olsaydı, bu konu güçlü bir yaşam yükü getirirdi.

 
Dmitry Fedoseev :

Yetişkin bir şekilde ciddiye alırsanız, asenkron çalışma için ayrı bir iş parçacığına koymaktan zarar vermeyecek ilk görev WebRequest , ancak genel olarak yapacak ve böyle yaşayabilirsiniz.

İkinci görev, sinir ağlarını eğitmek, uzmana yerleşik otomatik optimizasyon. Bir Uzman Danışmandan kolayca akışlar oluşturmak mümkün olsaydı, bu konu güçlü bir yaşam yükü getirirdi.

Yalnızca MQL çerçevesinde, her iki görev de EA sayacının otomatik olarak başlatılmasıyla çözülür.

 
Igor Makanu :

Konu başlatıcıya sadece ilk programımı saf WinAPI ile yazmasını önermedim https://www.mql5.com/en/forum/318593/page2#comment_12565043

internette bu konuyla ilgili pek çok bilgi var - önce hazır başlık dosyalarını (windows.h, vb.) kullanarak yazıyoruz, sonra bu başlık dosyalarını kaldırıyoruz ve aziz saf WinAPI'ye yaklaşıyoruz = kendi büyük kodumuz bir işlemi ve olayları alıp işleyebilen bir pencereyi kaydedebilen ayak örtüsü .... ve bu sadece yararlı hiçbir şey yapamayan banal bir pencere olacaktır, ancak bu iş için ne kadar yapmanız gerektiğine dair bir anlayış olacaktır. WinAPI kullanarak


Yaklaşık 15 yıl önce denemiştim (tam hatırlamıyorum, hala çevirmeli bağlantı olduğunu hatırlıyorum) ve bu yol herhangi bir “Annemle programcıyım” dan geçmeli, böylece sorular ve verme arzusu var. sistem programcılarına tavsiye - derleyici geliştiricileri ortadan kayboldu

"Bu şekilde gittikten sonra", onlar için derleyiciler ve kitaplıklar yazan yüzlerce sistem programcısının muazzam çalışması hemen netleşecek, herhangi bir uygulama programcısının yardımı okuyabilmesi için neden hız için uygun kullanıcı işlevselliğinin sağlandığı açık olacaktır. ve "2 tıklamada" istenen sonucu elde edin


Not: genel olarak, deneyim, bilgi ve nitelik eksikliği başka bir bilişsel çarpıtmaya neden oldu))))

Igor, senin gibi herkesin programlama konusunda uzmanlaşmış bir yüksek öğrenimi yok. Öğretmenler sana nerede öğretti? Bu nedenle, yeterlilikten söz edilemez.
Bu nedenle, saf WinAPI temsili bulanık, sizin tarif ettiğinizden daha kolay olacağını varsaydım.
Eskiden programlamadan hiç uzaktım ve sadece mql sayesinde öğretmenler ve ipuçları olmadan C / C ++ öğrenmeye başladım!
Ancak gördüğünüz gibi, bağımsız olarak eşzamansız ihtiyaçlara dönüştü. Evet, bir şey bilmesem bile, ama her şeyi gerektiği gibi, ihtiyacım olanı inceliyorum.
Evet, .NET teknolojisine aşina değilim ve istemiyorum, bu beni C#'dan çıkarıyor, herkesin kendi dil taşınabilirliği var.
Geliştiricilere tavsiye verdiğimi nerede gördün? mql'ye asenkron kodla çalışmak için bir dizi standart fonksiyon eklemek için bir teklif yapıldı.
Ve bence bu mantıklı bir teklif, neden buna bu kadar olumsuz tepki veriyorsunuz anlamıyorum... Yoksa iletişim tarzınız hep böyle mi?
Böyle bir işlevselliğe ihtiyacınız yoksa, diğer kullanıcıların buna ihtiyacı vardır. OOP gibi, herkes kullanmıyor, ama orada. Bence artık birçok dilde asenkron var ama mql'de yok.
Mql neden diğer dillerden daha kötü, asenkron yöntemlerden yoksun? Konular hakkında, soru kapalıdır ve uyumsuzluk kutudan çıkarılabilir.

 
Roman :

Igor, senin gibi herkesin programlama konusunda uzmanlaşmış bir yüksek öğrenimi yok. Öğretmenler sana nerede öğretti? Bu nedenle, yeterlilikten söz edilemez.
Bu nedenle, saf WinAPI temsili bulanık, sizin tarif ettiğinizden daha kolay olacağını varsaydım.
Eskiden programlamadan hiç uzaktım ve sadece mql sayesinde öğretmenler ve ipuçları olmadan C / C ++ öğrenmeye başladım!
Ancak gördüğünüz gibi, bağımsız olarak eşzamansız ihtiyaçlara dönüştü. Evet, bir şey bilmesem bile, ama her şeyi gerektiği gibi, ihtiyacım olanı inceliyorum.
Evet, .NET teknolojisine aşina değilim ve istemiyorum, bu beni C#'dan çıkarıyor, herkesin kendi dil taşınabilirliği var.
Geliştiricilere tavsiye verdiğimi nerede gördün? mql'ye asenkron kodla çalışmak için bir dizi standart fonksiyon eklemek için bir teklif yapıldı.
Ve bence bu mantıklı bir teklif, neden buna bu kadar olumsuz tepki veriyorsunuz anlamıyorum... Yoksa iletişim tarzınız hep böyle mi?
Böyle bir işlevselliğe ihtiyacınız yoksa, diğer kullanıcıların buna ihtiyacı vardır. Bence artık tüm dillerde uyumsuzluk var ama mql'de yok.
Mql neden diğer dillerden daha kötü, asenkron yöntemlerden yoksun? Konular hakkında soru kapalı ve eşzamansızlık gerçekleştirilebilir.

MQL5'te OrderSendAsync gibi bir uyumsuzluk var.

Ağ veya dosya sistemi ile etkileşime gelince - WinAPI kullanın, çözümü yukarıda yazdım. Bana göre her şey bunun için var. Bu yöntemlerin nasıl kullanılacağını Microsoft web sitesinde okuyabilirsiniz. Keşfedilmemiş başka neler var?)