выполнение функции после полной загрузки формы - PullRequest
0 голосов
/ 17 июня 2020

У меня есть функция, которую я хочу запустить после загрузки формы windows. функция навсегда выводит «лол». но прямо сейчас он прерывает инициализацию формы, но если я не помещаю ее в конструктор Form1, тогда функция никогда не вызывается и никогда не запускается. нет возможности вызвать эту функцию после открытия формы?

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            do_stuff_forever();
        }
        public void do_stuff_forever() {
            while (1 < 2) { Debug.WriteLine(" lol "); }
        }
    }

Ответы [ 2 ]

0 голосов
/ 17 июня 2020

Используйте событие Form_Load и откройте новый поток, чтобы пользовательский интерфейс не зависал.

0 голосов
/ 17 июня 2020

Используйте событие Shown () формы, чтобы она запускалась ПОСЛЕ того, как форма полностью отобразилась ... но бесконечный l oop по-прежнему будет монополизировать поток пользовательского интерфейса. Поместите этот уродливый код в другой поток, чтобы он заработал:

public Form1()
{
    InitializeComponent();
    this.Shown += (s, e) =>
    {
        Task.Run(() =>
        {
            while (1 < 2) {
                Debug.WriteLine(" lol ");
                System.Threading.Thread.Sleep(100); // optional?
            }
        });
    };
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...