Revolt Posted October 25, 2006 at 07:34 PM Report #60066 Posted October 25, 2006 at 07:34 PM Boas. O que eu queria era saber se existe um comando que possa cancelar uma thread que está presa num determinado método. Por exemplo: Tenho um backgroundworker onde está a correr um método GetFiles() que vai buscar os ficheiros de um certo grupo de pastas. Se tivesse lá um For() em vez do método Get Files() era só meter um if a verificar a propriedade CancelationPending e depois se fosse True meter o comando ExitSub. Contudo, no exemplo acima descrito isso não dá 😉 Revolt Website Antigo Nick: Pauzinhos
Delta Posted October 25, 2006 at 10:42 PM Report #60150 Posted October 25, 2006 at 10:42 PM tenta detalhar melhor o que queres fazer, ou coloca aqui o código
Revolt Posted October 26, 2006 at 05:15 PM Author Report #60238 Posted October 26, 2006 at 05:15 PM Como é que eu faço para cancelar esta thread quando carrego no botão cancelar? Private Sub BackgroundWorker1_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork For each file as String in My.Computer.Filesystem.GetFiles(Path) Text = Text & file & Controlchars.Crlf Next End Sub Revolt Website Antigo Nick: Pauzinhos
Asgorath Posted October 26, 2006 at 05:59 PM Report #60251 Posted October 26, 2006 at 05:59 PM Boas. Ja tentaste isto? Me.backgroundWorker1.CancelAsync() "The Dark Side Clouds Everthing. Impossible To See The Future Is."My rig: Intel Core 2 Quad Q9450 | abit IP35P | 4G Kingston 800 Mhz | XFX GeForce 9800 GX2 1G ddr3 | 2X WD5000AAJS 500Gb Sata 2 | PSU 600W || Caixa El-Diablo | Creative XMod
Revolt Posted October 26, 2006 at 06:05 PM Author Report #60252 Posted October 26, 2006 at 06:05 PM já. O que isso faz é mudar a propriedade CancellationPending do thread para True e depois tinha que adicionar uma coisa tipo isto ao for: If thread.CancellationPending = true Then Exit Sub End If O problema é que quando ele chega ao GetFiles e começa a buscar todos os ficheiros da pasta seleccionanda, ele não avança no for() até acabar de os ir buscar e portanto não dá para o fechar desta maneira :/ Revolt Website Antigo Nick: Pauzinhos
Delta Posted October 27, 2006 at 07:55 AM Report #60330 Posted October 27, 2006 at 07:55 AM tens o comando Thread.abort mas acho que esse codigo está mal
Revolt Posted October 27, 2006 at 02:43 PM Author Report #60366 Posted October 27, 2006 at 02:43 PM então como é que o deveria fazer? EDIT: Acho que já sei o que tavas a dizer que está mal. Devia escrever a thread programaticamente em vez de usar o Backgroundworker? Revolt Website Antigo Nick: Pauzinhos
Delta Posted October 27, 2006 at 11:33 PM Report #60452 Posted October 27, 2006 at 11:33 PM não só...usa as threads normais também me referia ao código de ler os ficheiros
Revolt Posted October 28, 2006 at 10:54 AM Author Report #60505 Posted October 28, 2006 at 10:54 AM isso era só um exemplo 😄 . Anyway já tá resolvido. Revolt Website Antigo Nick: Pauzinhos
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now