Выполните несколько Потоков UI

Как немного больше устойчивого варианта взлома Wayne (который мог бы запутаться нажатием Кнопки "Назад"), при отключении управления: набор readonly= true и className= 'disabled' вместо disabled= true, затем разработайте .disabled для взгляда подобными отключенному полю.

8
задан ashleedawg 8 September 2018 в 13:24
поделиться

3 ответа

Я не думаю, что то, что вы спрашиваете, действительно то, что вы хотите, но создать насос сообщений для каждого потока легко, вам просто нужно вызвать Application.Run один раз для каждого потока.

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Thread t1 = new Thread(Main_);
        Thread t2 = new Thread(Main_);

        t1.Start();
        t2.Start();

        t1.Join();
        t2.Join();
    }

    static void Main_()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
}
9
ответ дан 5 December 2019 в 11:25
поделиться

Use Application.DoEvent().
or
Create multiply threading forms:

    Thread form2Thread;
    Form2 form2;

    private void Form1_Load(object sender, EventArgs e)
    {
        form2Thread = new Thread(RunForm2);
        form2Thread.SetApartmentState(ApartmentState.STA);
        form2Thread.Name = "Form2 Thread";   // looks nice in Output window
        form2Thread.Start();
    }

    public void RunForm2()
    {
        form2 = new Form2();
        Application.Run(form2);
    }
2
ответ дан 5 December 2019 в 11:25
поделиться

Seems like it is possible.

I took backgrounder, opened TestApp, and created a new Form1 on thread/message pump #2:

private void button2_Click(object sender, EventArgs e) {
    helper.Background(() => {
        Form1 form2 = new Form1();
        form2.Show();
    });
}

The second window responds to mouse clicks etc.

Haven't actually verified if everything looks right, the freebie Visual Studio Express Edition I'm using is missing the "Threads" debug window, ahem. So I'm a bit in the dark. It seems to work, though. Let me know :-).

1
ответ дан 5 December 2019 в 11:25
поделиться
Другие вопросы по тегам:

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