Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Dim data As New ListBox() ' نقوم بتعريف متغير ليحتوي على البيانات المراد معالجتها (الخزانة)
- Function check(url As String) As String
- Dim Web As New Net.WebClient
- Dim Page As String = Web.DownloadString(url)
- IO.File.WriteAllText(Application.StartupPath & "\" & IO.Path.GetFileName(url), Page)
- End Function
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- ' عند بدء تشغيل البرنامج ، فنحن في حدث Forms load
- ' نقوم بقراءة بيانات الملف ووضعها بالخزانة - Put golds inside data variable
- Dim urls() As String = IO.File.ReadAllLines("C:\xxxx\xxxxx\xxxxx\url.txt") ' نقرأ الملف بالمسار الفلاني
- ' ننشيء حلقة تكرار بعدد اسطر البيانات urls
- For i As Integer = 0 To urls.Length - 1
- ' نقوم بوضع كل سطر داخل الخزانة
- data.Items.Add(urls(i))
- Next
- End Sub
- Sub Button1_click(sender As Object, e As EventArgs) Handles Button1.Click
- ' هنا حدث الضغط على الزر فينشيء لنا عامل واحد يقوم بإنشاء مجموعة عمال
- ' نقوم بتعريف متغير وهو العامل الواحد ونخبرة بان مركز عملة في Sub OneMan
- Dim OneWorker As New Threading.Thread(AddressOf OneMan)
- ' نعطي لهذا العامل الخاصية ان يشتغل في الخلفية والخفاء
- OneWorker.IsBackground = True
- ' نأمر العامل ببدء العمل
- OneWorker.Start()
- End Sub
- Sub OneMan()
- ' هنا نخبر العامل بان يقوم بصناعة عمال بالعدد المطلوب
- For i As Integer = 1 To 20 ' لينشئ لنا على سبيل المثال 20 عاملاً
- ' نقوم بتعريف متغير وهو متغير العمال المُنشئين ونخبرهم ان مجال عملهم فقط داخل في MultiMans
- Dim MultiWorkers As New Threading.Thread(AddressOf MultiMans)
- ' ايضا نعطي لهم الصلاحية بالعمل في الخفاء
- MultiWorkers.IsBackground = True
- ' ونعطي لهم الأمر بِبدء العمل ولكن !!
- ' نخبر لكل عامل ان لديك رقم خاص بك وهو رقم الحلقة المنشيئ بها
- MultiWorkers.Start(i)
- Next
- End Sub
- Sub MultiMans(index As Integer)
- ' الان لكل عامل بيئة عمل منفصلة عن الاخر ولكن لا احد منهم يعلم عدد الذهب داخل الخزانة
- ' Data Length (items) inside data variable (listbox)
- ' فنجعلهم يعملو بعدد لا نهائي ولكن يتم التحقق ان كان هناك المزيد من الذهب ام لا
- Do
- Try
- ' الان نخبره ان ياخذ صفيحة ذهب ( البيانات من الخزنة ) ويقوم بحذفها من الخزنة
- Dim url As New StringBuilder()
- ' نجعل كل عامل يذهب إلى الخزنة وياخذ صفيحة الذهب المرقمه برقم هويته وهو المرسل له من المصنع بالأعلى
- url.Append(data.Items(index))
- ' بعد ان اخذ الصفيحة إلى مجال عمله يجب ان يحذفها من الخزانه حتى يستطيع العمال غيره باخذ الذهب ايضا
- data.Items.RemoveAt(index)
- ' بعد ذلك يقوم بإرسال صفيحة الذهب الى المحل ليتم معالجتها
- check(url.ToString)
- Catch
- ' قمنا بكتابة صائدة الاخطاء حيث يحدث خطأ ان لم يكن هناك صفائح بالخزانه فهنا يعني ان العامل انتهى عملة
- Exit Sub
- End Try
- Loop
- End Sub
Advertisement
Add Comment
Please, Sign In to add comment