Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Timer in C# funktioniert nicht

Empfohlene Antworten

Veröffentlicht

Hey, haben hier ein kleines Problem mit unserem Timer....:)

Das Problem ist, dass er nicht tickt und dementsprechend nicht den Registry Key überprüft.


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

using System.Security.Permissions;

using Microsoft.Win32;



namespace afag

{

    class Program

    {

        public RegistryKey rk;


        static void Main(string[] args)

        {

            Program a1 = new Program();


            a1.rk = Registry.CurrentUser.OpenSubKey(@"[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EloUsb\Enum]");


            Timer devTimer = new Timer();

            devTimer.Interval = 3000;

            devTimer.Start();

            devTimer.Tick += new EventHandler(a1.devTimer_Tick);



            Console.ReadKey();

        }



        public void devTimer_Tick(object sender, EventArgs e)

        {

            string value = rk.GetValue("0").ToString();

            if (value.EndsWith("50U00000"))

            {

                Console.WriteLine("Seriennummer des Elo-Controllers nicht  programmiert!");

            }


        }

    }

}


Danke schonmal im Vorraus:p

Du verwendest die Timer-Klasse aus System.Windows.Forms. Diese ist für die Verwendung mit einem Fenster vorgesehen und verwendet den GUI-Thread.

Verwender eine der anderen Timer-Klassen.

System.Threading.Timer:


...

// waits first time waitMSec and ticks every tickMSec after this

yourTimer = new Timer(new TimerCallback(yourDelegate), yourParam, waitMSec, tickMSec); 

...

public (static) void yourDelegate(Object param) // param <= yourParam

{

    if ( anyStateYouWant )

        m_timer.Dispose(); // to destroy

    do with your param in any tick not

}

Bearbeitet von VaNaTiC

Und es wäre wesentlich besser später noch eine Referenz zu dem Timer zu haben um ihn wieder stoppen zu können, also solltest du ihn als Member deiner Klasse definieren.

Du solltest auch das Event binden bevor du den Timer startest.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.