منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
إستعمال ال Multi Threading - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : إستعمال ال Multi Threading (/showthread.php?tid=36658)

الصفحات: 1 2 3 4


RE: إستعمال ال Multi Threading - abdou - 15-10-20

(15-10-20, 01:42 AM)عبد العزيز البسكري كتب :
تقصد بهذا الشكل أستاذنا القدير ..
كود :
  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       'Dim _thread As Thread = New Thread(Function()
       '                                       Application.Run(New Form() With {.MdiParent = Form1})
       '                                   End Function)
       '_thread.SetApartmentState(ApartmentState.STA)
       '_thread.Start()

       Dim _thread As Thread = New Thread(AddressOf OpenForm1)

   End Sub

   Private Sub OpenForm1()
       Application.Run(New Form() With {.MdiParent = Form1})
   End Sub
اخي الفاضل
حدد الاجراء اللي بيعمل تهنيج للشاشة وضيفه في ثريد واستدعيه في اي وقت
بدلا من فتح الفورم باستخدام الثريد اظنه غير عملي وهيتأخر في فتح  الشاشة , هتعالج عمليه التهنيج بس



RE: إستعمال ال Multi Threading - عبد العزيز البسكري - 16-10-20

السّلام عليكم و رحمة الله و بركاته
أخي الكريم عبدو .. صدقني ليس لدي أي إجراءات أخرى غير التي بالملف بالمشروع الذي وضعته
حتى كود أستاذنا الكريم الشاكي لله بارك الله فيه و له
[b]يا فرحة .. ما تمّت[/b]
ضبط معي و ماعاد الشريط النصي يتوقف عند محاولة فتح فورم آخر لكن الفورم الذي ينفتح أجد أنّه ما تظهر عليه السكاينات Bonus Skins
هذا كامل الكود .. ضبط معي و لا يهنّج ال WebBrowSer و لكن يظهر الفورم 1 بدون سكاين .. رغم أنه بدون هذه الاكواد و بتوقف الشلريط النصي يظهر السكاين بطريقة عادية
كود :
Imports DevExpress.XtraEditors
Imports System.Threading
Public Class MDIParent1
   Sub New()
       InitializeComponent()
       DevExpress.UserSkins.BonusSkins.Register()
       DevExpress.Skins.SkinManager.EnableFormSkins()
       DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = "Caramel"
   End Sub
   Private Sub MDIParent1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

       Dim T_WebBrowser As Thread = New Thread(AddressOf Move_Web_Browser)
       T_WebBrowser.SetApartmentState(ApartmentState.STA)
       T_WebBrowser.Start()

   End Sub
   Private Sub Move_Web_Browser()
       Dim Animate As String, Couleur As String, Vitesse As Long
       Animate = "السلام عليكم و رحمة الله و بركاته      "
       Vitesse = 6 : Couleur = "#OOFFFF"
       Me.WebBrowser1.Navigate("About:<Html><Body BGCOLOR ='#000000' Scroll='No'><Font Color= " & Couleur & " Size='5' Face='Tahoma'><Body Topmargin='0'>" & "<Marquee Scrollamount=" & ">" & Animate & "</Marquee></Font></Body><Center></Html>")
   End Sub
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Try
           Dim T_Form1 As Thread = New Thread(AddressOf OpenForm1)
           T_Form1.SetApartmentState(ApartmentState.STA)
           T_Form1.Start()
       Catch ex As Exception
           XtraMessageBox.Show(ex.Message, "خطأ غير متوقع", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
       End Try
   End Sub
   Private Sub OpenForm1()
       Form1.ShowDialog()
   End Sub
End Class

تحياتي



RE: إستعمال ال Multi Threading - abdou - 16-10-20

والله ما عندي فكرة بالديف


RE: إستعمال ال Multi Threading - عبد العزيز البسكري - 16-10-20

المشكلة أخي عبدو ليست بالديف .. أنا وضحت لك الكود كاملا .. أما ظهور السكاين أم عدم ظهورة ليست هي المشكلة .. المشكلة مثلما أوضحت هي توقف الشريط المتحرك بمجرد الضغط على فتح أي فورم آخر لغاية ظهورة الفورم .. فيرجع الشريط يتحرك عادي
تحياتي



RE: إستعمال ال Multi Threading - ابو روضة - 16-10-20

قد ينفعك هذا الحل أخى عبد العزيز فلقد نفعنى كثيراً فى أمر التهنيج...



كود :
Imports System.Threading.Thread
Public Class Form1
   

Dim thread1 As System.Threading.Thread
وممكن تضيف ثريد أخر  

 Dim thread2 As System.Threading.Thread

Public Sub darkness1()
     ضع الأمر هنا الذى تريد تنفيذه

   End Sub

وهذا فى الزر

thread1 = New System.Threading.Thread(AddressOf darkness1)
       thread1.Start()

وده فى الفورم لود

CheckForIllegalCrossThreadCalls = False



RE: إستعمال ال Multi Threading - tryold - 16-10-20

تم التعديل وهذا بفضل الاخوه بارك الله فيهم

ان شاء الله ينفع


RE: إستعمال ال Multi Threading - عبد العزيز البسكري - 16-10-20

السّلام عليكم و رحمة الله و بركاته
أهلا أخي الغالي أبو روضة
صدقني أخي الكريم ..
بدأت أفكّر فعلا بإلغاء فكرة الشريط المتحرّك تماما .. منذ أكثر من 10 أيّام و أنا أجرّب .. بكل كود .. كل نقطة .. كل فاصلة .. هنا .. بالمواقع العربية و الاجنبية .. لكن بدون فائدة
شوف أخي أبو روضة
أنا الآن قمت بالضغط على زر الأمر المشار إليه بالسهم الاحمر و لم أفعل شيئا آخر
و مع ذلك توقّف كل شيء و لم تظهر إطلاقا الفورم المعنية و ظهرت رسالة الخطأ التالية
ملاحظة : إذا حذفت أمور الثريد هذه .. و فقط بزر الامر كتبت
Frm_RichControl.ShowDialog()
كل شيء يسير جد عادي .. لكن مع توقف الشريط المتحرك
تحياتي



RE: إستعمال ال Multi Threading - الشاكي لله - 16-10-20

جرب هذا :
كود :
Frm_RichControl.Invoke(Sub()
        Frm_RichControl.ShowDialog()
        End Sub)



RE: إستعمال ال Multi Threading - ابو ليلى - 16-10-20

السلام عليكم ورحمة الله و بركاته
الاخ عبد العزيز البسكري المحترم,
هل الغاية من استخدام Web Browser  فقط لعرض شريط متحرك.
و هل جربت ان تعملها في Task منفصل لترى النتيجة.

PHP كود :
Dim T Task.Factory.StartNew(Sub() Form1.ShowDialog()) 



الاخ الغالي ابو جاسم (الشاكي لله) حمداً لله على سلامتك , اطلت الغيبة , عوداً محموداً ان شاء الله.


RE: إستعمال ال Multi Threading - عبد العزيز البسكري - 16-10-20

السلام عليكم و رحمة الله و بركاته
للأسف أساتذتي الأكارم
الشاكي لله
أبو ليلى
ما ضبطت الحكاية
واعذروني علن التأخر بالرد لأنه يجب قبل الأجابة أن أجرب الفكرة بكم طريقة ثم أكتب
تحياتي و احتراماتي للجميع