2013-11-20 131 views
-2

我正在尝试创建一个计时器来检查计算机被锁定的时间这个想法是让计时器计数30分钟,并在30分钟后执行一些代码。到目前为止,我尝试这个如何在C#中创建一个计时器计数器

int startin = 1800 - DateTime.Now.Second; 
var time = new System.Threading.Timer(o => Console.WriteLine("hello"), null, startin * 1000, 1800000); 

它的工作除了我需要停止并重置计时器,当用户登录。 有什么想法?感谢

+3

所以,你的问题无关,与一般的定时器,但你实际上是在寻找一种方式来捕获登录用户的活动吗? –

+0

@ORMapper然后静静地停止通过ftp复制微妙的文件:-) – lboshuizen

+0

我有事件捕获工作,我只需要从用户锁定计算机的时间倒计时30分钟,如果他们登录然后停止并重置定时器,直到他们再次锁定电脑 – user1766952

回答

1
public class Timer 
{ 
    CancellationTokenSource _cts = new CancellationTokenSource(); 

    public Task Wait(TimeSpan delay) 
    { 
     return Task.Delay(delay, _cts.Token); 
    } 

    public void Stop() 
    { 
     _cts.Cancel(); 
    } 
} 

用法:

var t = new Timer(); 
await t.Wait(TimeSpan.FromMinutes(30)); 
+0

谢谢lboshuizen – user1766952