vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2019
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
BackgroundWorker: DoWork wird übersprungen bzw. nicht ausgeführt 
Autor: Danny987
Datum: 30.12.18 19:38

Hallo,

ich will auf einem Atom Tablet mit Win10 mit einem BGW eine Aufgabe im Hintergrund erledigen lassen. Den BGW starte ich mit:

bgw1Aufgaben.RunWorkerAsync()
Nun sollte eigentlich das abgearbeitet werden:

Private Sub bgw1Aufgaben_DoWork(ByVal sender As Object, ByVal e As _
  System.ComponentModel.DoWorkEventArgs) Handles bgw1Aufgaben.DoWork
 
Zähler = Zähler + 1
 
End Sub
DoWork wird aber nicht ausgeführt (Zähler bleibt gleich). Eine Fehlermeldung gibt es auch nicht. RunWorkerCompleted wird aber ausgeführt.

Private Sub bgw1Aufgaben_RunWorkerCompleted(ByVal sender As Object, ByVal e As _
  System.ComponentModel.RunWorkerCompletedEventArgs) Handles _
  bgw1Aufgaben.RunWorkerCompleted
 
Debug.Print(Zähler)
 
End Sub
Das gleiche Programm läuft ohne Probleme unter Win7/8/10, aber auf einem kleinem Atom Tablet mit Win10 wird der BGW nicht ausgeführt.

Kann mir jemand weiterhelfen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: BackgroundWorker: DoWork wird übersprungen bzw. nicht ausgeführt 
Autor: Manfred X
Datum: 30.12.18 21:43

Hallo!

Ich fürchte, ohne nähere Angaben (z.B. Deklarationsort und Werte
der Variable zähler, Fehlerbehandlungen, ...) läßt sich das geschilderte
Verhalten nicht eindeutig beurteilen.
Falls das RunworkerCompleted-Event ausgelöst wird, ist zuvor das
DoWork-Event eingetreten.

Check mal dieses Trivialbeispiel (Windows.Forms):
Imports System.ComponentModel
 
Public Class frmBackgroundWorker
 
    Dim WithEvents bgw As New BackgroundWorker
 
    Dim zähler As Integer = 0
 
 
    Private Sub frmBackgroundWorker_Load(sender As Object,
                                  e As EventArgs) Handles MyBase.Load
 
        bgw.RunWorkerAsync()
    End Sub
 
 
    Private Sub bgw_DoWork(sender As Object, 
                           e As DoWorkEventArgs) Handles bgw.DoWork
        zähler += 1
    End Sub
 
 
    Private Sub bgw_RunWorkerCompleted(sender As Object,
        e As RunWorkerCompletedEventArgs) Handles bgw.RunWorkerCompleted
 
        Me.Invoke(New MethodInvoker(AddressOf showzähler))
    End Sub
 
    Private Sub showzähler()
        Me.Text = zähler.ToString
    End Sub
End Class


Beitrag wurde zuletzt am 30.12.18 um 21:44:33 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: BackgroundWorker: DoWork wird übersprungen bzw. nicht ausgeführt 
Autor: Danny987
Datum: 31.12.18 14:39

Ähnlich deinem Beispiel ist das ganze aufgebaut. Das DoWork Event wird aber anscheinend nicht ausgeführt. Der globale Zähler wird nicht hochgezählt. Nichtmal ein Beep(). Leider auch keine Fehlermeldung. Das Programm läuft aber normal weiter.

Insgesamt benutze ich fünf BGWs im Programm. Nachdem ich einen gelöscht habe, funktioniert es. Liegt vielleicht am knappen 1GB RAM des Tablets?!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2019 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel