تقييم الموضوع :
  • 1 أصوات - بمعدل 4
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] ايقاف مؤقت للتحميل واستناف من حيث توقف
#3
Rainbow 
وللفائدة هذه هي الاكواد التي استخدمها بعيدا عن WebClient

قم بإستدعاء المكتبات التالية
PHP كود :
Imports System.Collections.Generic
Imports System
.Data
Imports System
.Drawing
Imports System
.Text
Imports System
.Windows.Forms
Imports System
.Net
Imports System
.IO
Imports System
.Threading 
في قسم التصاريح قم بتعريف المتغيرات التالية
PHP كود :
Private thrDownload As Thread
        
Private strResponse As Stream
        
Private strLocal As Stream
        
Private webRequest As HttpWebRequest
        
Private webResponse As HttpWebResponse
        
Private Shared PercentProgress As Integer
        
Private Delegate Sub UpdateProgessCallback(BytesRead As Int64TotalBytes As Int64)
        Private 
goPause As Boolean False 
كود زر التحمييل
PHP كود :
Private Sub btnDownload_Click(sender As ObjectAs EventArgs)
            If 
thrDownload IsNot Nothing AndAlso thrDownload.ThreadState ThreadState.Running Then
MessageBox
.Show _ 
("A download is already running"_
 
"Download in progress"MessageBoxButtons.OKMessageBoxIcon.[Error])
            Else
                
lblProgress.Text "Download Starting"
                
thrDownload = New Thread(New ParameterizedThreadStart(AddressOf Download))
                
thrDownload.Start(0)
                
btnPauseResume.Enabled True
                btnPauseResume
.Text "Pause"
            
End If
        
End Sub 
إجراءات التحديث والتحميل
PHP كود :
Private Sub UpdateProgress(BytesRead As Int64TotalBytes As Int64)
            
PercentProgress Convert.ToInt32((BytesRead 100) / TotalBytes)
            
prgDownload.Value PercentProgress
            lblProgress
.Text "Downloaded " BytesRead " out of " TotalBytes " (" PercentProgress "%)"
        
End Sub
        
Private Sub Download(startPoint As Object)
            Try
                
Dim startPointInt As Integer Convert.ToInt32(startPoint)
                
webRequest DirectCast(WebRequest.Create(txtUrl.Text), HttpWebRequest)
                
webRequest.AddRange(startPointInt)
                
webRequest.Credentials CredentialCache.DefaultCredentials
                webResponse 
DirectCast(webRequest.GetResponse(), HttpWebResponse)
                
Dim fileSize As Int64 webResponse.ContentLength
                strResponse 
webResponse.GetResponseStream()
                If 
startPointInt 0 Then
                    strLocal 
= New FileStream(txtPath.TextFileMode.CreateFileAccess.WriteFileShare.None)
                Else
                    
strLocal = New FileStream(txtPath.TextFileMode.AppendFileAccess.WriteFileShare.None)
                
End If
                
Dim bytesSize As Integer 0
                Dim downBuffer 
As Byte() = New Byte(2047) {}
                While (
InlineAssignHelper(bytesSizestrResponse.Read(downBuffer0downBuffer.Length))) > 0
                    strLocal
.Write(downBuffer0bytesSize)
                    
Me.Invoke(New UpdateProgessCallback(AddressOf Me.UpdateProgress), 
                                        
New Object() {strLocal.LengthfileSize startPointInt})
                    If 
goPause True Then
                        
Exit While
                    
End If
                
End While
            Finally
                
strResponse.Close()
                
strLocal.Close()
            
End Try
        
End Sub
        
Private Shared Function InlineAssignHelper(Of T)(ByRef target As Tvalue As T) As T
            target 
value
            
Return value
        End 
Function
                Public 
Sub New()
            
InitializeComponent()
        
End Sub 
زر الإيقاف
PHP كود :
        Private Sub btnStop_Click(sender As ObjectAs EventArgs)
            
thrDownload.Abort()
            
webResponse.Close()
            
strResponse.Close()
            
strLocal.Close()
            
prgDownload.Value 0
            lblProgress
.Text "Download Stopped"
            
btnPauseResume.Enabled False
        End Sub 
زر التوقف المؤقت والاستمرار
PHP كود :
Private Sub btnPauseResume_Click(sender As ObjectAs EventArgs)
            If 
thrDownload IsNot Nothing Then
                
If btnPauseResume.Text "Pause" Then
                    goPause 
True
                    btnPauseResume
.Text "Resume"
                    
webResponse.Close()
                    
strResponse.Close()
                    
strLocal.Close()
                    
thrDownload.Abort()
                Else
                    
goPause False
                    btnPauseResume
.Text "Pause"
                    
Dim startPoint As Long 0
                    
If File.Exists(txtPath.TextThen
                        startPoint 
= New FileInfo(txtPath.Text).Length
                    
Else
                        
MessageBox.Show("The file you choosed to resume doesn't exist."
                                                
"Could not resume"MessageBoxButtons.OKMessageBoxIcon.[Error])
                    
End If
                    
lblProgress.Text "Download Resuming"
                    
thrDownload = New Thread(New ParameterizedThreadStart(AddressOf Download))
                    
thrDownload.Start(startPoint)
                    
btnPauseResume.Enabled True
                End 
If
            Else
                
MessageBox.Show("A download does not appear to be in progress."
                                
"Could not pause"MessageBoxButtons.OKMessageBoxIcon.[Error])
            
End If
        
End Sub 

RolleyesRolleyesRolleyes
{‏‏ يَرْفَعِ اللَّهُ الَّذِينَ آمَنُوا مِنكُمْ وَالَّذِينَ أُوتُوا الْعِلْمَ دَرَجَاتٍ‏ }

 " Mohamed M. Bedair     -     " Abu Anas
Genius Live , Egypt
الرد }}}
تم الشكر بواسطة: kslawy , Hossam 2005 , Sajad


الردود في هذا الموضوع
RE: ايقاف مؤقت للتحميل واستناف من حيث توقف - بواسطة Genius Live - 08-03-14, 10:37 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Exclamation توقف ملف swf عن العمل في تطبيقي الورد الصناعي 0 200 14-10-24, 11:03 AM
آخر رد: الورد الصناعي
  [VB.NET] مشكلة توقف التقارير بعد النتقال لفجول 2012 ahmedramzyaish 0 926 17-04-22, 08:12 AM
آخر رد: ahmedramzyaish
  تفادي توقف البرنامج بعد فصل المودم ADAM12 3 1,465 19-12-21, 03:45 AM
آخر رد: ADAM12
  كود ايقاف صوت المعالج عند التنقل برز enter بسام محمدغانم 2 1,454 23-10-21, 01:32 AM
آخر رد: بسام محمدغانم
  ايقاف التايمر بعد عمل معين ابو روضة 10 3,390 01-06-21, 05:05 AM
آخر رد: سعود
Heart [كود] عمل برنامج مؤقت تنازلي shado1796 4 8,717 10-03-21, 02:46 AM
آخر رد: Kareem2021
  كود ايقاف المنافذ new_programer 0 1,195 12-06-20, 11:09 PM
آخر رد: new_programer
  [سؤال] هل استطيع اسناد القيم التي في الداتا جريد في جدول في الذاكره بشكل مؤقت بسام محمدغانم 2 1,729 25-05-20, 03:39 PM
آخر رد: بسام محمدغانم
  حدث توقف ال textchanged makky 0 943 17-05-20, 01:20 AM
آخر رد: makky
  مشكلة توقف شاشة كرستال ريبورت بسام محمدغانم 0 1,272 13-03-20, 04:20 AM
آخر رد: بسام محمدغانم

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم