I create a program that need to received some picture using socket programming, and coding for receiving picture is in background worker.

PROBLEM :
I need to make progress bar to show how much data I have received. my code still error...
Help please...

here's my code for received data :

ProgressBar1.Minimum = 0
        ProgressBar1.Maximum = 100
If arrayTeks(3) <> Nothing And arrayTeks(6) <> Nothing Then
                x = arrayTeks(0) + 1
                For var = i To x
                    Dim PACKET_SIZE As UInt16 = 4096
                    Dim Reader As BinaryReader
                    Dim ReadBuffer(PACKET_SIZE - 1) As Byte
                    Dim NData As Int32
                    Dim MStream As MemoryStream
                    Dim LData As Int32

                    Reader = New BinaryReader(clientSocket.GetStream)
                    ' Read Length of data (Int32)
                    NData = Reader.ReadInt32
                    ' Now comes the data, save it in a memory stream
                    MStream = New MemoryStream
                    While NData > 0
                        LData = clientSocket.GetStream.Read(ReadBuffer, 0, PACKET_SIZE)
                        MStream.Write(ReadBuffer, 0, LData)
                        NData -= LData
                       ' to add progress bar value
                        progressbar1.value += 5
                    End While
                    ' if all data finish received, showing full progress bar
                   progressbar1.value = 100
                    SaveFile(arrayTeks(z), MStream.ToArray, False) 'Then
                    z = z + 3
                Next
End If

error message :
"Cross-thread operation not valid: Control 'progressBar1' accessed from a thread other than the thread it was created on."


ho do I solve this ??

You can not update your interface from a background thread. However you can use the ProgressChanged event of a background worker to update progress status. There are some examples available for download and additional walkthrough examples available in the help file, just type in "BackgroundWorker Class"

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.