6

這裏是我的代碼..開始/停止DispatcherTimer從不同的線程

public DispatcherTimer tmr = new DispatcherTimer(); 

void somefunction (parameters){ 

if (something) 
    tmr.Start(); 
if (something else) 
    tmr.Stop(); 

    } 

我的問題是,由於它運行在我不能從第二個函數訪問TMR對象的Start/Stop方法一個不同的線程!

有人可以幫我嗎?這個問題讓我感到震驚了將近3天! :(

回答

2

你需要通過調度來調用它(用於編組從另一個線程調用),像這樣

Deployment.Current.Dispatcher.BeginInvoke((Action)(()=>timer.Start()) 
+0

感謝hasan..but因爲「TMR」已經是一個DispatcherTimer對象,它沒有一個如果tmr只是一個計時器對象,但它不是.. :( – Gowtham

+0

@Gowtham嘗試更新的答案 –

+0

它仍然無效。我得到的錯誤是.. System.Windows.Threading .Dispatcher'不包含'Invoke'的定義,並且沒有可以找到接受'System.Windows.Threading.Dispatcher'類型的第一個參數的擴展方法'Invoke'(你是否缺少using指令或程序集引用?) – Gowtham