2013-11-20 53 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