语句仅在方法结束时执行

时间:2014-08-29 18:55:43

标签: c# compact-framework

我是使用Compact Framework的C#,我今天意识到了一些奇怪的东西。我通过将set应用于对象的事件调用方法,当我调试时,它会通过此方法,但只是在方法的最后一个小括号之后执行。我的例子:

public string Loading 
{
    set { lblLoading.Text = value; }
}

private void btnAuth_Click(object sender, EventArgs e)
{
    Loading = "Loading...";
    _presenter.PerformAuth();
}

当我调试时,它会通过我的第一个语句,应用它,但不会改变屏幕上的任何内容......哦,直到它PerformAuth()。之后,那么标签值就会改变。哦,问题不在于它是同步的。当我尝试执行异步任务时也会出现同样的情况:

private void btnAuth_Click(object sender, EventArgs e)
{
    ASyncResult res = BeginInvoke(new Action(() =>Loading = "Loading..."));
    EndInvoke(res);
    _presenter.PerformAuth();
}

我认为它可能是线程和C#设计实现中的错误。而且直接设置它对我来说很顽固。如下图所示:

我只想在标签中设置文本,调用方法并在事件中取消设置。为什么C#会让它如此复杂?

enter image description here

0 个答案:

没有答案