ImmortalCAT
@ImmortalCAT
C# loving

Можно ли неуправляемо создавать потоки?

new Thread(ShowAbout).Start();
в ShowAbout у меня прописан метод открытия формы "about"
About ab = new About();
            ab.ShowDialog();

Нормально ли такое использование потоков?
Или это плачевно...
Так же я использую ещё один поток для сохранения параметров
  • Вопрос задан
  • 170 просмотров
Решения вопроса 2
Nipheris
@Nipheris Куратор тега C#
Теоретически, раз вы создаете форму в том же потоке, в которым с ней работаете - то все нормально, другой вопрос - зачем это делать и чего вы этим добиваетесь. В 98% GUI-приложений весь интерфейс находится в одном потоке и все работает замечательно (если открывается модальное окошко или диалог, оно просто крутит свой собственный цикл сообщений), а вот как раз другие потоки нужны для проведения длительных вычислений и операций ввода-вывода, чтобы GUI-поток не останавливался и мог спокойно и дальше ловить мессаджи от операционки на перерисовку и пользовательские действия. Так что если это не эксперимент в вакууме, то нужно основательно подумать, зачем вам такие финты - управлять несколькими гуевыми потоками нужно очень аккуратно.
Ответ написан
C# управляемый язык.
unsafe - делает доступ к неуправляемому коду.
Выше у вас создается поток со слабой ссылкой, вы не сможете к нему обратиться после его создания. Но это не делает его не управляемым.
Создание потока дорогостоящая операция, без лишней нужды лучше не создавать, если создали то и удалить не забудьте, или сделайте его дочерним по отношению к главному.

В данном примере попробуйте открыть и закрыть форму About 100 раз, что будет?
Используйте TPL (task, threadpool).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы