Hallo,
ich benutze das .NET Compact Framework 2 (Pocket PC) und brauche einen Timer in einer Klasse, die allerdings ohne GUI arbeitet. Somit kann ich nur System.Threading.Timer benutzen, da ...Forms.Timer nicht anwendbar (kein GUI) und System.Timers nicht verfügbar (Compact Framework) ist.
Nun ergibt sich aber folgendes Problem:
Ich habe es nicht hinbekommen, den Timer in einer nicht-statischen Klasse zu verwenden, also z.B:
TimerCallback timerDelegate = new TimerCallback(TimeoutCallback);
Timer spTimer = new Timer(timerDelegate, null, Timeout.Infinite, Timeout.Infinite);
private void TimeoutCallback(object state)
{
// handle timeout with access to nonstatic methods of a class
}
in einer Klasse
public class SomeClass
{
...
}
Dabei erhalte ich Fehlermeldungen der Form "A field initializer cannot reference the nonstatic field, method, or property...".
Mache ich alles statisch mit dem Schlüsselwort static, so kann ich den Timer verwenden, allerdings kann ich dann keine Objekte der Klasse erstellen.
Muss dieser Timer statisch verwendet werden oder gibt es einen Trick, ihn nicht-statisch zu benutzen? Leider konnte ich dazu nirgendwo etwas finden.
Marco
ich benutze das .NET Compact Framework 2 (Pocket PC) und brauche einen Timer in einer Klasse, die allerdings ohne GUI arbeitet. Somit kann ich nur System.Threading.Timer benutzen, da ...Forms.Timer nicht anwendbar (kein GUI) und System.Timers nicht verfügbar (Compact Framework) ist.
Nun ergibt sich aber folgendes Problem:
Ich habe es nicht hinbekommen, den Timer in einer nicht-statischen Klasse zu verwenden, also z.B:
TimerCallback timerDelegate = new TimerCallback(TimeoutCallback);
Timer spTimer = new Timer(timerDelegate, null, Timeout.Infinite, Timeout.Infinite);
private void TimeoutCallback(object state)
{
// handle timeout with access to nonstatic methods of a class
}
in einer Klasse
public class SomeClass
{
...
}
Dabei erhalte ich Fehlermeldungen der Form "A field initializer cannot reference the nonstatic field, method, or property...".
Mache ich alles statisch mit dem Schlüsselwort static, so kann ich den Timer verwenden, allerdings kann ich dann keine Objekte der Klasse erstellen.
Muss dieser Timer statisch verwendet werden oder gibt es einen Trick, ihn nicht-statisch zu benutzen? Leider konnte ich dazu nirgendwo etwas finden.
Marco
Comment