Добрый день.
Создаю пустую форму в потоке, в конструкторе формы вылезает ошибка: The calling thread must be STA, because many UI components require this.
ThreadPool.QueueUserWorkItem((WaitCallback)delegate
{
Форма111 fff= new Форма111();
fff.Show();
}));
Здравствуйте, Аноним, Вы писали:
А>Что не так?
Если коротко — зачем вообще запускать форму в другом потоке, тем более, в потоке из пула?
Чуть длиннее — используйте отдельный поток и выставляйте apartment state в sta.
Re[2]: ошибка The calling thread must be STA
От:
Аноним
Дата:
02.03.11 11:51
Оценка:
Здравствуйте, Sinix, Вы писали:
А как бы мне такое сделать:
Thread t = new Thread((ThreadStart)delegate
{
Форма1 фрм = new Форма1 () { Owner = = Application.Current.MainWindow };
....
}
Соответственно вылетает с ошибкой The calling thread cannot access this object because a different thread owns it.
Здравствуйте, Аноним, Вы писали:
А>Соответственно вылетает с ошибкой The calling thread cannot access this object because a different thread owns it.
Никак.
Или изучать
Здравствуйте, aloch, Вы писали:
S>> В любом случае, отвыкайте от русских идентификаторов. A>А зачем тогда C# поддерживает Unicode?
Строковые литералы как объявлять будете?
Здравствуйте, Sinix, Вы писали:
S>कंसोल.כתובהקו("こんにちは العالم!");
S>Приятного дебага
Зачем МНЕ это отлаживать. Ну а у написавших это проблем с пониманием не будет. Если делается проект, подразумевающий использование в разных странах разноязычными пользователями — то, конечно, все по английски.
Но если делаетсядля себя или для конкретной страны, то в чем проблема?
Здравствуйте, aloch, Вы писали:
A>Но если делаетсядля себя или для конкретной страны, то в чем проблема?
Для одноразовых поделок — никаких проблем. Для долгоживущего кода всё написано по ссылке выше.
Здравствуйте, aloch, Вы писали:
A>В качестве примера "одноразовой поделки" — конфигугации 1С (Бухгалтерия, Торговля и т.п.), пойдут?
Ну сколько можно холиварить впустую? У 1С — русскоязычное API. У дотнета официальный гадлайн — только alphanumeric.
У 1C два API — русский и английский, последний мало кто использует.
В гайдлане — не слова про "только английский язык". Сказано alphanumeric (в русском разделе МСДН — "буквенно-цифровые знаки")
— для русского языка это — абв123.
Здравствуйте, aloch, Вы писали:
A>В гайдлане — не слова про "только английский язык". Сказано alphanumeric (в русском разделе МСДН — "буквенно-цифровые знаки") A>- для русского языка это — абв123. http://en.wikipedia.org/wiki/Alphanumeric