表单停止中的代码执行

时间:2011-01-07 09:11:11

标签: c# winforms c#-2.0

我正在编写一个应该与Windows Mobile 6.5设备通信的应用程序。插入设备后,将返回activeHandler回调。 我遇到的问题是代码执行停止在

lblStatus.Text = "someString";

线。抛出异常,代码执行被停止并且gui获得焦点。我在label属性上使用invoke方法尝试了同样的事情,它产生了相同的结果。如果在该方法中调用非表单代码,一切运行正常。

public partial class MyClass: Form
{
    public MyClass()
    {
           ActiveHandler active = new ActiveHandler(ActiveSync_Active);
           sync.addHandler(active)
    }

    private void ActiveSync_Active() {
        lblStatus.Text = "someString";
        //Some code
    }
}

修改 无法调用的调用

private delegate void StatusLabelChange(string str);
private void ChangeStatusLabelText(string str)
{
    lblStatus.Text = str;
}

private void ActiveSync_Active() {
    lblStatus.Invoke(new StatusLabelChange(ChangeStatusLabelText), new object[] {"asd"});
 }

1 个答案:

答案 0 :(得分:0)

尝试使用BeginInvoke,因为它会将其推送为异步。