Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. Visual Basic
  4. Canceling background worker

Canceling background worker

Scheduled Pinned Locked Moved Visual Basic
comhelpquestion
2 Posts 2 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    svanwass
    wrote on last edited by
    #1

    I am unsure the best way to cancel my background worker (bgw). My application (form1) has an options screen (form2). On app load, a background worker starts to ping a list of IPs. I would like to go into my options form and tell my app a different list of IPs to ping. Once I make this change, i need to stop the current bgw from pinging, reload the list, and start pinging again. I know that I first have to set the WorkerSupportsCancelation property to true, which should set CancellationPending to true, then call the CancelAsync method, check the CancellationPending, then cancel it as this article suggests. My issue is that I am canceling the bgw from the second form and do not currently have a 'DoWorkEventArgs' object to cancel. What am I missing to get this object and cancel the bgw? Thanks!

    D 1 Reply Last reply
    0
    • S svanwass

      I am unsure the best way to cancel my background worker (bgw). My application (form1) has an options screen (form2). On app load, a background worker starts to ping a list of IPs. I would like to go into my options form and tell my app a different list of IPs to ping. Once I make this change, i need to stop the current bgw from pinging, reload the list, and start pinging again. I know that I first have to set the WorkerSupportsCancelation property to true, which should set CancellationPending to true, then call the CancelAsync method, check the CancellationPending, then cancel it as this article suggests. My issue is that I am canceling the bgw from the second form and do not currently have a 'DoWorkEventArgs' object to cancel. What am I missing to get this object and cancel the bgw? Thanks!

      D Offline
      D Offline
      Dave Kreskowiak
      wrote on last edited by
      #2

      Once a thread is started and stopped, it cannot be restarted. You're best bet is to cancel the existing operation, and let the thread die. Create a NEW background worker, just the way you already, did and supply it with the new list.

      A guide to posting questions on CodeProject[^]
      Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
           2006, 2007

      1 Reply Last reply
      0
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • World
      • Users
      • Groups