Выполнение кода в формах останавливается - PullRequest
2 голосов
/ 07 января 2011

Я пишу приложение, которое должно взаимодействовать с устройством Windows Mobile 6.5. Когда устройство подключено, возвращается обратный вызов activeHandler. Проблема в том, что выполнение кода останавливается на

lblStatus.Text = "someString";

линия. Не генерируется никаких исключений, выполнение кода прекращается, и графический интерфейс получает фокус. Я попробовал то же самое с использованием метода invoke свойства label, который дал тот же результат. Если в этом методе вызывается код не в форме, все работает нормально.

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
    }
}

Edit: Вызов вызова, который не работал

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 голосов
/ 02 марта 2011

Попробуйте также BeginInvoke, так как он переведет его в асинхронное состояние.

...