الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال : كيف يمكن انهاء عملية معينة

مغلق
بدأه jbsa في 22 فبراير 2006 · 4 رد · 515 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

اخواني الكرام ، لو انه عندي فورم علية button1 ابدأ العملية وآخر انهاء العملية

وعند بدأ العملية مثلا اريد العد من 1 الى مليون ، وبعد فترة اريد ان اقطع العد عند الضغط على button2 انهاء العملية

فكيف يمكن عمل ذلك .

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim i As Double = 0
        Dim y As Double = 0
        For i = 1 To 1000000
            y += i
        Next
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

    End Sub
#2

اعتقد

Button1.handel = false

وبطريقة ذكية عندي حل اخر

انشء متغير على مستوى الفورم باسم act فرضا

واعطيه عهند تشغيل العد قيمة true

وعند الضغط على زر الانهاء اعطه قيمة false

وفي الكود الخاص بالعد ضع الشرط التالي

For i = 1 To 1000000

y += i

if not act then exit sub

Next

تم تعديل هذه المشاركة بواسطة Romantic_touch في 22 فبراير 2006 في 12:25

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#3

بسم الله الرحمن الرحيم

هنالك طريقة اسرع واعتقد انها أفضل من الطريقة الآولى وهي كالتالي

بإستخدام threading كالتالي:

عرف المتغير UseThreading من نوع Thread وحدد إسم الدالة DoSub كمرجع ، ضعه تحت جملة " Windows form designer generated code

كالتالي

Public UseThreading As New Thread(AddressOf DoSub)

DoSub هي دالة تضع فيها الكود المكتوب داخل Button1

ثم في الكبسة Button1 تضع الكود التالي

UseThreading.Start()

ولإنهاء التنفيذ نضع الكود التالي في كبسة انهاء التنفيذ

UseThreading.Abort()
       UseThreading.Join()

لمزيد من الإيضاحات حول هذه التقنية ارجع للرابط التالي

http://204.157.36.16/index.php?showtopic=57304

http://204.157.36.16/index.php?showtopic=80445

Enjoy

moh4evar@hotmail.com

cbb6a3b884f4f88b3a8e3d44c636cbd8.jpg

مركز تحميل الصور والملفات لغاية 10MB من دون فترة محددة لحذف الملفات

www.4img.com

#4

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

الشكر للجميع ،

اخي Only The Lonely الطريقة ممتازة وقد توصلت لها قبل ذلك ولكن عندما توسعت في الموضوع قليلاً

واضفت label وجعلت قيمة Y تظهر في label اعطاني خطا

Cross-thread operation not valid: Control 'Label1' accessed from a

thread other than the thread it was created on.

وقد استطعت ان احل هذه المشكلة ايضاً

ولكن السؤال كيف يمكن استخدام قيمة Y بعد انتهاء عمل Thread

#5

وعليكم السلام ورحمة وبركاته

لماذا لا تعرف y كالتالي

public y as Double

تحت تعريف ال thread مباشرة

تقبلوا التحية

moh4evar@hotmail.com

cbb6a3b884f4f88b3a8e3d44c636cbd8.jpg

مركز تحميل الصور والملفات لغاية 10MB من دون فترة محددة لحذف الملفات

www.4img.com

هذا الموضوع مغلق.

مواضيع مشابهة