如何在演示者中設置System.Timers.Timer以便在視圖線程中消逝?在winforms中使用System.Timers.Timer Presenter
環境:C#,.NET 4.0 CP,WinForms的
我現在的鱈魚是在這裏,但它不工作。我必須另外在視圖中「調用」。
我將視圖轉換爲ISynchronizeInvoke以構建代碼。投到控制不起作用。
public class GeneratorPagePresenter : IGeneratorPagePresenter
{
private IGeneratorPage view;
private Timer timer;
public void SetView(IGeneratorPage generatorPage)
{
view = generatorPage;
timer = new Timer();
timer.Interval = 1000;
timer.AutoReset = true;
timer.SynchronizingObject = (ISynchronizeInvoke) view;
timer.Elapsed += Timer_Elapsed;
}
void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
view.UpdateProgress(percentage);
}
}
編輯
感謝AnPasant評論(這神祕disapeared)。我將SynchronizingObject設置爲參數。它工作正常,但代碼看起來很奇怪。
presenter.SetView(this, this);
你可以更具體的'不工作'?有沒有例外? –
在視圖中有「對象從其他線程改變」或類似的東西。 –
爲什麼不使用'System.Windows.Forms.Timer'? –