2012-01-31 37 views
11

我想在我的Windows應用商店中設置計時器。我們如何在WinRT應用程序中設置計時器?

public void Start_timer() 
    { 

     Windows.UI.Xaml.DispatcherTimer timer = new DispatcherTimer();   
     timer.Tick += new Windows.UI.Xaml.EventHandler(timer_Tick); 
     timer.Interval = new TimeSpan(00, 1, 1); 
     bool enabled = timer.IsEnabled;    // Enable the timer 
     timer.Start();        // Start the timer  
     } 

按鈕點擊我在上面調用方法來設置此定時器。但是,如果設置了Tickhand事件處理程序,則會收到錯誤 「嘗試讀取或寫入受保護的內存,這通常表示其他內存已損壞。」

我們是否需要在Windows Store應用程序中以不同方式處理計時器?

+0

如果你使定時器成爲一個字段,timer.Tick + = timer_Tick; timer.Interval = new TimeSpan(00,1,1);移動到構造器。另外bool enabled = timer.IsEnabled;沒有效果,是嗎? – 2012-01-31 16:18:44

+1

@lukas對不起,沒有得到你的第一點。請你詳細說明 – Sap 2012-02-01 03:42:55

+2

private DispatcherTimer timer = new DispatcherTimer(); public YourClass() { timer.Tick + = timer_Tick; timer.Interval = new TimeSpan(00,1,1); } – 2012-02-01 12:55:40

回答

10

的解決方案是將定時器該方法例如

private DispatcherTimer timer = new DispatcherTimer(); 

,並在構造函數

public TheClass() 
{ 
    timer.Tick += timer_Tick; 
    timer.Interval = new TimeSpan(00, 1, 1); 
    timer.Start(); 
} 

很難說是不完整的代碼的原因設置它,但它可能是timer_Tick的行爲。

+0

它的缺點是它在UI線程上運行。所以如果定時器事件執行時間/ CPU消耗任務,UI掛起 – Tilak 2012-05-08 05:53:41

+0

如果這是完成異步:) – 70sCommander 2012-10-04 09:29:32

相關問題