?
Solved

Restarting Backgroundworker Component with in work Compeleted Event VB.Net

Posted on 2009-05-11
4
Medium Priority
?
829 Views
Last Modified: 2013-11-26
hi,

I have some criteria.. I will start the backgrndwrkr component and it will return a result to me,If the result is Something (*Some String) then manipulation will be done automatically by events.. but if result is Nothing then it shud restart the Background worker component from starting.. to put it short i want to restart the background worker in its thread itself.. i searched whole interne but cud not find any thing useful.. my last hope is this place..
0
Comment
Question by:Yogesh_Agarwal
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
4 Comments
 
LVL 86

Expert Comment

by:Mike Tomlinson
ID: 24355687
The THREAD will know if it is going to return Nothing and need restarting....so instead of letting it complete and raise the RunWorkerCompleted() Event, make it restart itself internally with some kind of looping structure such as a While() loop.  You can notify the UI of the restart using the ProgressChanged() event...
0
 

Author Comment

by:Yogesh_Agarwal
ID: 24356403
i am really confused to how to use that loop.. i don know how to use loops for that.. i am really fed of searching it.. can u please tell me?
0
 
LVL 86

Accepted Solution

by:
Mike Tomlinson earned 1500 total points
ID: 24356981
Ok...that was a pretty vague description so hopefully you can glean something from this convoluted example.  It keeps "working" until the result is retrieved in the second half of the current minute:
Public Class Form1
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Button1.Enabled = False
        BackgroundWorker1.RunWorkerAsync()
    End Sub
 
    Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
        Static R As New Random
        Dim dt As DateTime
        Dim result As Integer
        Do
            System.Threading.Thread.Sleep(R.Next(2000, 7001)) ' do some "work" between 2 and 7 secs long
            dt = DateTime.Now
            result = dt.Second
            If result < 30 Then
                BackgroundWorker1.ReportProgress(-1, dt)
            End If
        Loop While result < 30
        e.Result = dt.TimeOfDay.TotalMilliseconds
    End Sub
 
    Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
        If e.ProgressPercentage = -1 Then
            Label1.Text = "Restarted @ " & e.UserState
        End If
    End Sub
 
    Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
        Label1.Text = "Completed: " & e.Result
        Button1.Enabled = True
    End Sub
 
End Class

Open in new window

0
 

Author Closing Comment

by:Yogesh_Agarwal
ID: 31580149
nice work..
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

It’s quite interesting for me as I worked with Excel using vb.net for some time. Here are some topics which I know want to share with others whom this might help. First of all if you are working with Excel then you need to Download the Following …
Many of us here at EE write code. Many of us write exceptional code; just as many of us write exception-prone code. As we all should know, exceptions are a mechanism for handling errors which are typically out of our control. From database errors, t…
Visualize your data even better in Access queries. Given a date and a value, this lesson shows how to compare that value with the previous value, calculate the difference, and display a circle if the value is the same, an up triangle if it increased…
In this video, Percona Solutions Engineer Barrett Chambers discusses some of the basic syntax differences between MySQL and MongoDB. To learn more check out our webinar on MongoDB administration for MySQL DBA: https://www.percona.com/resources/we…

765 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question