none
Потоки UserControl RRS feed

  • Вопрос

  • WPF C#

    Вот решил я немного "ускорить" загрузки контролов и других элементов и данных из базы.

    Нашёл такой вариант

                Thread thread = new Thread(() =>
                {
                    try
                    {
                        LicenseWindow _lcw = new LicenseWindow();
                        _lcw.ShowInTaskbar = false;
                        _lcw.ShowDialog(); 
                    }
                    catch
                    {
                    }
                });
                thread.SetApartmentState(ApartmentState.STA);
                thread.Start();

    Вот вопрос - это завершённый код? Или надо ещё как то закрыть поток?

    И второй вот сейчас вызывается просто окошко, а если таким образом я буду загружать UserControl с "рабочими" элементами. Т.е. из этого второго потока вызову таким образом, а из основного смогу ли я обращаться к этим контролам?


    Спасибо

    24 декабря 2013 г. 8:31

Ответы

  • Добрый день.

    Вот вопрос - это завершённый код? Или надо ещё как то закрыть поток?

    Да, нормально все.

    И второй вот сейчас вызывается просто окошко, а если таким образом я буду загружать UserControl с "рабочими" элементами. Т.е. из этого второго потока вызову таким образом, а из основного смогу ли я обращаться к этим контролам?

    Здесь начинается специфика. Со свойствами компонента можно работать только из потока, в котором вы его создали. Т.е. вам придется переключаться в контекст этого компонента и уже из него считывать/присваивать поля.
    • Помечено в качестве ответа developers_s 24 декабря 2013 г. 19:59
    24 декабря 2013 г. 13:28
    Отвечающий

Все ответы

  • Добрый день.

    Вот вопрос - это завершённый код? Или надо ещё как то закрыть поток?

    Да, нормально все.

    И второй вот сейчас вызывается просто окошко, а если таким образом я буду загружать UserControl с "рабочими" элементами. Т.е. из этого второго потока вызову таким образом, а из основного смогу ли я обращаться к этим контролам?

    Здесь начинается специфика. Со свойствами компонента можно работать только из потока, в котором вы его создали. Т.е. вам придется переключаться в контекст этого компонента и уже из него считывать/присваивать поля.
    • Помечено в качестве ответа developers_s 24 декабря 2013 г. 19:59
    24 декабря 2013 г. 13:28
    Отвечающий
  • а что значит можно работать только из своего потока? в примере
    24 декабря 2013 г. 13:36
  • Вот здесь, можно посмотреть.

    24 декабря 2013 г. 13:55
    Отвечающий