Прежде всего, я использую VS2005 и C # 2.0.
Я пытаюсь установить свойство Text в поле со списком внутри события SelectedIndexChanged.Из другого потока здесь, в StackOverflow, это было предложено следующим образом:
BeginInvoke(new Action(() => someCombobox.Text = "x" ));
Теперь, во-первых, это возвращает мне ошибку компилятора.Я считаю, что это потому, что объект Action ведет себя по-разному в двух языковых спецификациях.В C # 2.0 объекту Action, похоже, требуется структура <T>
во всех объявлениях.Может быть, я ошибаюсь, но я хотел бы, чтобы это разъяснили.
Что работает, так это:
BeginInvoke(new Action<string>( delegate { someCombobox.Text = "x"; }), new object[] { "" });
Однако мне просто кажется очень странным, что я должен определить объект Action с параметром типа (тем более что я не собираюсь передавать какие-либо параметры)!Каким-то образом удаление этого параметра также сделает пустой новый объект [] устаревшим, чего я и хочу.
Может кто-нибудь помочь мне упростить приведенный выше вызов?
Наконец, гарантируется ли, что BeginInvokeзакончите после SelectedIndexChanged и, таким образом, обновите свойство Text поля со списком, указав правильный текст?
Буду очень признателен за ответы на эти вопросы.