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

سؤال مهم تشغيل دالة من بداية البرنامج الى نهايته

بدأه phonix في 10 نوفمبر 2009 · 9 رد · 1,013 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لدي مشروع احتاج تشغيل دالة او Service تشتغل من بداية البرنامج وتعمل loop الى نهاية البرنامج ولا تؤثر عى عمل main function فكيف يتم تنفيذها

هذه الدالة فط تعمل monitor على queue او database

الرجاء مساعدتي في كيفية تنفيذها او حتى ماذا تسمى هذه الدالة

وشكرا

#2

ماتستخدم thread ?

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#3

ممكن مثلا تضع الداله التي بدك تنفيذها داخل تايمر ,,, و عند الضغط على زر اغلاق البرنامج توقف التايمر وتغلق البرنامج

Chaos is rejecting all you have learned, chaos is being YOURSELF
 

#4

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

إذا كانت لديك أسئلة, لا تتردد :)

تحياتي...

cTestLab.rar

#5

السلام عليكم

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

اخي محمدرضى .. شكرا للبرنامج فعلا ساعدني كثير لتطبيق فكرة ال multithread

لكن لدي سؤال

في برنامجي احتاج دالتين من هذا النوع

1- تعمل مراقبة للنظام

2- والثانية يتم عمل call for function periodic time and then store in DB

هل هناك مشكلة في تشغيل هاتين الدالتين مع الدالة main

راح يأثر على كفاءة البرنامج

علما بأنني ابني manager for different machines with web service WCF and Dot.net

وعامل الاداء والسرعة مهمة عندي لاني احتاجها في قياسات زمن التنفيذ .. ولا اريد ان يكون البرنامج بطي بسبب برمجي

وجزاك الله خيرا

تم تعديل هذه المشاركة بواسطة phonix في 10 نوفمبر 2009 في 19:12

#6

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

تقصد إذا ما كان عمل المسلكين للدالتين التي ذكرت سيؤثر على عمل المسلك الرئيس الذي تعمل ضمنه الدالة Main؟

لا لن يؤثرا على عمل التطبيق الرئيس إلا في حالة كان عملهما ثقيل جدا في هذه الحالة سيؤثرا على عمل النظام كاملا.

#7

طيب كيف اعمل مناداة للدالة الثانية

وهي تعمل كل فتره من الزمن

بمعنى هي كل 30 ثانية تقوم بعمل معين

#8

بالنسبة للدالة التي تعمل مرة كل 30 ثانية, يمكن أن تعمل كما قال الأخ الفاضل shadi_ib استعمال تايمر يقوم بالمناداة على الدالة مرة كل ثلاثين ثانية. في هذه الحالة الدالة ستعمل ضمن المسلك الرئيس للتطبيق و إذا كان عملها ثقيل جدا, ستحس بأن التطبيق يتجمد للحظة أو لحظات كل ثلاثين ثانية مدة تنفيذ كود الدالة. كما يمكنك عملها على مسلكها الخاص و بعد الإنتهاء من عملها تنادي على الدالة System.Threading.Thread.Sleep(30000) فتتوقف عن العمل (تنام) مدة ثلاثين ثانية ثم (تستفيق) لتقوم بعملها ثم تنام و هكذا دواليك...

#9

جزاك الله خير استاذ محمد على هذه المعلومة

لدي مشكلة في WCF هل لديك خلفية عنها وشكرا

#10
اقتباس
لدي مشكلة في WCF هل لديك خلفية عنها وشكرا

لا تتردد في طرح سؤالك, ويفضل أن يكون في موضوع منفصل إذا كان موضوع السؤال مختلفا, و إن لم استطع الإجابة عنه فحتما هناك من أعضاء المنتدى من يستطيع...

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…