我正在尝试使用委托来更改多视图的活动索引,但它不能像我期望的那样工作。
这是我的代码
protected void ucWaitPage_FinishedWaiting(PerformAfterWaitDelegate performAfterWait)
{
performAfterWait.Invoke();
this.SetIndex();
}
private void SetIndex()
{
this.mvwTest.ActiveViewIndex = 0;
}
performAfterWait Delegate指向SetIndex()方法。
当调用performAfterWait委托时,调用SetIndex(),但是当SetIndex()返回this.mvwTest.ActiveViewIndex恢复为等于1时。
但是当我直接调用SetIndex()方法时,它会设置this.mvwTest.ActiveViewIndex = 0,并且当方法返回时更改仍然存在。
答案 0 :(得分:0)
当performAfterWait委托时 调用SetIndex()被调用 但是当SetIndex()返回时 this.mvwTest.ActiveViewIndex还原 等于1。
如何验证这一点,你可以在调用函数之后放置Debug.WriteLine(this.mvwTest.ActiveViewIndex)吗?
顺便问一下,你想用invoke来调用那个方法?你只想测试代表吗?如果您仍在同一个线程中调用,我看不到优势。