منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] طريقة عمل فاصل زمني بين كودين - نسخة قابلة للطباعة

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



طريقة عمل فاصل زمني بين كودين - thevest_knight - 26-01-17

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

يعني سيكون الكود هكذا 

نضغط على الزر
يفتح الفورم الجديد
يتم التوجه الى الرابط المحدد
( فاصل زمني )
تنفيذ آخر أمر 

أتمنى أن تساعدوني بهذا الخصوص و شكرا


RE: طريقة عمل فاصل زمني بين كودين - ابو ليلى - 27-01-17

الحل بسيط اخي الكريم استعمل Thread


RE: طريقة عمل فاصل زمني بين كودين - thevest_knight - 27-01-17

ممكن توضيح لو سمحت


RE: طريقة عمل فاصل زمني بين كودين - مساعدة - 27-01-17

السلام عليكم

إذا كنت تقصد بالفاصل الزمني أن تنتظر حتى تحميل الصفحة في المتصفح WebBrowser
فيوجد حدث خاص بالمتصفح WebBrowser يحدث عند انتهاء التحميل وهو DocumentCompleted ضع فيه الأمر الآخر


RE: طريقة عمل فاصل زمني بين كودين - thevest_knight - 27-01-17

شكرا أخي لكن document completed لن تنفعتي بهذه الحالة لأن المتصفح بفورم آخر و الأمر الذي اريد تطبيقه بعد انتهاء تحميل الصفحة هو عبارة على سكريبت يتم حقنه بالصفحة و هذا السكريبت يحمل 20 قيمة مختلفة يعني لدي 20 زر لادخال تلك السكريبتات بالفورم الاول


RE: طريقة عمل فاصل زمني بين كودين - thevest_knight - 27-01-17

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


RE: طريقة عمل فاصل زمني بين كودين - ابو ليلى - 27-01-17

ساعطيك مثال بسيط يبين لك طريقة عمل Task .
حيث يتم الانتظار الى ان يتم تنفيذ هذا Task و بعدها يتم تنفيذ الكود الذي يلي هذا Task
انشئ فورم جديد و استورد فضاء الاسماء التالي
PHP كود :
Imports System.Threading.Tasks 
الان في حدث التحميل ضع الكود التالي
PHP كود :
       CheckForIllegalCrossThreadCalls False 
الان لدي مثال بسيط و هو حلقة من الارقام تبدأ من الصفر الى 100 يتم تعبئتها في مربع نص و بعد هذه الحلقة لدي حلقة اخرى تبدأ من 101 حتى 300 و يتم تنفيذها بعد انتهاء الاولى بـ 7 ثواني
يمكنك التحكم بالمدة من Task.Dealy(x).Wait

ضع زر و مربع نص على الواجهة
في حدث الضغط على الزر ضع الكود التالي و جرب
PHP كود :
   Dim T1 As Task Task.Factory.StartNew(Sub()
 
                                                  Threading.Thread.Sleep(2000)
 
                                                  For As Integer 0 To 100
                                                       TextBox1
.AppendText(Environment.NewLine)
 
                                                  Next

                                               End Sub
)
 
       T1.Wait()

 
       Dim T2 As Task Task.Factory.StartNew(Sub()

 
                                                  Task.Delay(7000).Wait()
 
                                                  For As Integer 101 To 300
                                                       TextBox1
.AppendText(Environment.NewLine)
 
                                                  Next

                                               End Sub
)
 
           T2.Wait()

 
           If T2.IsCompleted True Then
                Dim completed 
As Boolean T2.IsCompleted
                TextBox1
.AppendText(Environment.NewLine T2.Status.ToString "  " completed)
 
           End If 
في اخر الكود فحص حالة Task2 
الان يمكنك الاستفادة من هذه التقنية و معرفة المزيد عنها في مراجعها الرسمية
Task Class



RE: طريقة عمل فاصل زمني بين كودين - thevest_knight - 27-01-17

شكرا لك أخي أبو ليلى كفيت و وفيت