02-09-22, 12:36 AM
أرجو ان تنجح مع التحميل لاجزاء الملف عن بعد
السؤال كيف نقوم بتوليد المسارات وفقا لاجراء او نتيجة اجراء معين؟
مثلا :
100 / 5
نولد مسارات Thread بعدد الناتج.
كيف يكون هذا؟

(02-09-22, 06:03 AM)سعود كتب : [ -> ]صباح الخير
هل يمكن ام لا
Dim pTop As Integer = 4
Private Location_control As New Point(10, 50)
Dim i1 As Integer
Private Sub ALL(pC1 As Control(,))
Dim pProgressBar As ProgressBar = CType(pC1(0, i1), ProgressBar)
Dim pLabel As Label = CType(pC1(1, i1), Label)
For i As Integer = 1 To 100
pProgressBar.Invoke(Sub() pProgressBar.Value = i)
pLabel.Invoke(Sub() pLabel.Text = pProgressBar.Value)
Threading.Thread.Sleep(150)
Next
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim TA As Threading.Thread() = New Threading.Thread(3) {}
Dim C(1, 3) As Control
Dim pProgress As ProgressBar() = New ProgressBar(3) {}
Dim lLable As Label() = New Label(3) {}
Dim i As Integer
For i = 0 To 3
i1 = i
' TA(i) = New Threading.Thread(AddressOf ALL)
C(0, i) = pProgress(i)
pProgress(i) = New ProgressBar
pProgress(i).Name = "pProgressX" & i
pProgress(i).Location = New Point(Location_control.X + 10, Location_control.Y)
pProgress(i).Width = Me.Width - 100
pProgress(i).Height = 20
pProgress(i).Minimum = 0
pProgress(i).Maximum = 100
pProgress(i).Value = 25
Location_control.Y += 10
Controls.Add(pProgress(i))
C(1, i) = lLable(i)
lLable(i) = New Label
lLable(i).Name = "lLableX" & i
lLable(i).Location = New Point(pProgress(i).Width + Location_control.X + 10, Location_control.Y)
lLable(i).Width = Me.Width - 30
lLable(i).Height = 20
lLable(i).Text = 25
Location_control.Y += 24
Controls.Add(lLable(i))
' TA(i).Start(C)
Next
End SubPrivate Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
Dim ths As New List(Of Threading.Thread)
Dim d As New Dictionary(Of ProgressBar, Label)
Dim pros As New List(Of ProgressBar)
Dim lbls As New List(Of Label)
For Each cl As Control In Me.Controls
Dim prog As ProgressBar = Nothing
Dim lbl As Label = Nothing
If TypeOf cl Is ProgressBar Then
prog = DirectCast(cl, ProgressBar)
pros.Add(prog)
ElseIf TypeOf cl Is Label Then
lbl = DirectCast(cl, Label)
lbls.Add(lbl)
End If
Next
For r As Integer = 0 To pros.Count - 1
d.Add(pros(r), lbls(r))
Next
For i As Integer = 0 To d.Count - 1
Dim th As Threading.Thread
th = New Threading.Thread(AddressOf all)
ths.Add(th)
Next
For h As Integer = 0 To ths.Count - 1
Dim co(2) As Control
co(0) = d.Keys(h)
co(1) = d.Values(h)
Dim t As Threading.Thread = ths(h)
t.Start(co)
Next
End Sub
Dim pTop As Integer = 4
Private Location_control As New Point(10, 50)
Dim i1 As Integer
Private Sub All(c As Control())
Dim pi As ProgressBar = CType(c(0), ProgressBar)
Dim l As Label = CType(c(1), Label)
For i As Integer = 1 To 100
pi.Invoke(Sub() pi.Value = i)
l.Invoke(Sub() l.Text = pi.Value)
Threading.Thread.Sleep(150)
Next
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim J As Integer = 5
Dim pProgress As ProgressBar() = New ProgressBar(J) {}
Dim lLable As Label() = New Label(J) {}
For i = 0 To J
pProgress(i) = New ProgressBar
pProgress(i).Name = "pProgressX" & i
pProgress(i).Location = New Point(Location_control.X + 10, Location_control.Y)
pProgress(i).Width = Me.Width - 100
pProgress(i).Height = 20
pProgress(i).Minimum = 0
pProgress(i).Maximum = 100
' pProgress(i).Value = 25
Location_control.Y += 10
Controls.Add(pProgress(i))
lLable(i) = New Label
lLable(i).Name = "lLableX" & i
lLable(i).Location = New Point(pProgress(i).Width + Location_control.X + 10, Location_control.Y)
lLable(i).Width = Me.Width - 30
lLable(i).Height = 20
lLable(i).Text = 0
Location_control.Y += 24
Controls.Add(lLable(i))
Next
'=========================================
Dim ths As New List(Of Threading.Thread)
Dim d As New Dictionary(Of ProgressBar, Label)
Dim pros As New List(Of ProgressBar)
Dim lbls As New List(Of Label)
For Each cl As Control In Me.Controls
Dim prog As ProgressBar = Nothing
Dim lbl As Label = Nothing
If TypeOf cl Is ProgressBar Then
prog = DirectCast(cl, ProgressBar)
pros.Add(prog)
ElseIf TypeOf cl Is Label Then
lbl = DirectCast(cl, Label)
lbls.Add(lbl)
End If
Next
For r As Integer = 0 To pros.Count - 1
d.Add(pros(r), lbls(r))
Next
For n As Integer = 0 To d.Count - 1
Dim th As Threading.Thread
th = New Threading.Thread(AddressOf All)
ths.Add(th)
Next
For h As Integer = 0 To ths.Count - 1
Dim co(2) As Control
co(0) = d.Keys(h)
co(1) = d.Values(h)
Dim t As Threading.Thread = ths(h)
t.Start(co)
Next
End Sub(02-09-22, 07:20 AM)Taha Okla كتب : [ -> ]ما شاء الله عليك - تبارك الرحمن - هذا ما كنت أقف بسببه
إذن خذ التحديث على الكود بعد الدمج بين الكودين
أفتح مشروع جديد وضع عليه زر واحد - والكود :
لاحظ المتغير (J) هو عدد أشرطة التمرير الذي تريده / بإمكانك وضعها بالكود نتيجة طريقة التقسيم التي تريد ..
كود :
Dim pTop As Integer = 4
Private Location_control As New Point(10, 50)
Dim i1 As Integer
Private Sub All(c As Control())
Dim pi As ProgressBar = CType(c(0), ProgressBar)
Dim l As Label = CType(c(1), Label)
For i As Integer = 1 To 100
pi.Invoke(Sub() pi.Value = i)
l.Invoke(Sub() l.Text = pi.Value)
Threading.Thread.Sleep(150)
Next
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim J As Integer = 5
Dim pProgress As ProgressBar() = New ProgressBar(J) {}
Dim lLable As Label() = New Label(J) {}
For i = 0 To J
pProgress(i) = New ProgressBar
pProgress(i).Name = "pProgressX" & i
pProgress(i).Location = New Point(Location_control.X + 10, Location_control.Y)
pProgress(i).Width = Me.Width - 100
pProgress(i).Height = 20
pProgress(i).Minimum = 0
pProgress(i).Maximum = 100
' pProgress(i).Value = 25
Location_control.Y += 10
Controls.Add(pProgress(i))
lLable(i) = New Label
lLable(i).Name = "lLableX" & i
lLable(i).Location = New Point(pProgress(i).Width + Location_control.X + 10, Location_control.Y)
lLable(i).Width = Me.Width - 30
lLable(i).Height = 20
lLable(i).Text = 0
Location_control.Y += 24
Controls.Add(lLable(i))
Next
'=========================================
Dim ths As New List(Of Threading.Thread)
Dim d As New Dictionary(Of ProgressBar, Label)
Dim pros As New List(Of ProgressBar)
Dim lbls As New List(Of Label)
For Each cl As Control In Me.Controls
Dim prog As ProgressBar = Nothing
Dim lbl As Label = Nothing
If TypeOf cl Is ProgressBar Then
prog = DirectCast(cl, ProgressBar)
pros.Add(prog)
ElseIf TypeOf cl Is Label Then
lbl = DirectCast(cl, Label)
lbls.Add(lbl)
End If
Next
For r As Integer = 0 To pros.Count - 1
d.Add(pros(r), lbls(r))
Next
For n As Integer = 0 To d.Count - 1
Dim th As Threading.Thread
th = New Threading.Thread(AddressOf All)
ths.Add(th)
Next
For h As Integer = 0 To ths.Count - 1
Dim co(2) As Control
co(0) = d.Keys(h)
co(1) = d.Values(h)
Dim t As Threading.Thread = ths(h)
t.Start(co)
Next
End Sub