programm für eine bestimmte zeit unterbrechen

Black_Panter

Ensign
Registriert
Mai 2006
Beiträge
197
hi,

ich habe in Microsoft Visual Basic 2008 Express Edition mir nen programm geschrieben, das immer mal wieder für ne sekunde angehalten werden muss...ich hab nen bsichen was rumprobiert aber nichts geht wirklich....die pause funktion die ich in vba hab funzt auch net....kann mir vieleicht jemand sagen wie ich die unterbrechung hinbekomme?
 
Dazu benötigst du den Namespace System.Threadung.
Dann steht dir die Klasse Thread zu Verfügung.
Dann kannst du ganz einfach mit Thread.sleep(x) dein Programm für x Sekunden anhalten.

Grüße

tewes
 
ich hab jetzt nur nochs problem, das ich nciht weiß wie das mit den Namespace funktioniert....google hat mir bisher auch net weitergeholfen....
 
oder nimm doch diesen Code:
Code:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long )

Private Sub Command1_Click()
  Sleep 2000
  MsgBox "2 Sekunden Später"
End Sub
 
np
oder man verwendet den Timer, dieses Event wird in einer bestimmten Zeit aufgerufen je nach Einstellung des Timers. aber zum anhalten ist die API Funktion Sleep besser geeignet denn die hällt wirklich für die Zeit das ganze Programm an.
 
STOP!

Schwerer Fehler!

oder nimm doch diesen Code:
Code:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long )

Private Sub Command1_Click()
Sleep 2000
MsgBox "2 Sekunden Später"
End Sub

NIEMALS, ich wiederhole wirklich NIEMALS, die Win32-API verwenden, wenn .NET die Funktionalität bereitstellt.

Mach es so:

imports System.Threading;

und da wo angehalten werden soll:

Thread.Sleep(1000)

Hierbei wird die Verarbeitung um 1 Sekunde hinausgezögert. Der Hauptthread der Anwendung schläft so lange.
 
StageZero schrieb:
STOP!

Schwerer Fehler!



NIEMALS, ich wiederhole wirklich NIEMALS, die Win32-API verwenden, wenn .NET die Funktionalität bereitstellt.

Mach es so:

imports System.Threading;

und da wo angehalten werden soll:

Thread.Sleep(1000)

Hierbei wird die Verarbeitung um 1 Sekunde hinausgezögert. Der Hauptthread der Anwendung schläft so lange.

also ich hab jetzt mal einfach mal testhalber:

Private Sub cmd2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd2.Click
imports System.Threading
Thread.Sleep(1000)
MsgBox("2 Sekunden Später")
End Sub

mir geschrieben einfach ums zu testen....
mir wird dann geasagt das imports System.Threading nen Syntax error sei
und das Thread nciht declarierd ist...
 
Private Sub cmd2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd2.Click
Dei zeile kann komplett raus.
Und das Import muss direkt am anfang der Datei passieren. Es darf ich keiner Klasse oder Methode sein.
 
Notfalls kannst Du auch so arbeiten:

System.Threading.Thread.Sleep(1000)

Allerdings solltest Du Dich zwingend mit Namespaces und der Imports-Klausel befassen, das sind die absoluten Basics.
 
ich lern grad .net in der schule...werd mich auf jedenfall damit noch beschäftigen...

hab jetzt noch ne frage...
wenn das programm angehalten wird, kann ich sonst ncihts amchen und muss warten bis der code komplett abgearbeitet ist...wie kann cihs machen das eine codeabfolge im hintergrund läuft dun ich in dem geschriebenen programm weiter agieren kann?
 
Threading ist hier das Zauberwort. Wenn du einen neuen Thread machst kannst du nur diesen oder nur den Hauptthread anhalten und den anderen unabhängig weiterarbeiten lassen.
Helfen wird dir dazu sicher MSDN und Google.

Google: threading vb.net

mfg
 
Zurück
Oben