27-01-17, 05:17 PM
ساعطيك مثال بسيط يبين لك طريقة عمل Task .
حيث يتم الانتظار الى ان يتم تنفيذ هذا Task و بعدها يتم تنفيذ الكود الذي يلي هذا 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 i As Integer = 0 To 100
TextBox1.AppendText(i & Environment.NewLine)
Next
End Sub)
T1.Wait()
Dim T2 As Task = Task.Factory.StartNew(Sub()
Task.Delay(7000).Wait()
For p As Integer = 101 To 300
TextBox1.AppendText(p & 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
الان يمكنك الاستفادة من هذه التقنية و معرفة المزيد عنها في مراجعها الرسمية
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال


