我正在编写一个应该与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"});
}
答案 0 :(得分:0)
尝试使用BeginInvoke,因为它会将其推送为异步。