Multithreading 前向和不同的信息泵

Multithreading 前向和不同的信息泵,multithreading,message,bringtofront,Multithreading,Message,Bringtofront,我将直接进入这个问题。 基本上,我已经建立了一个需要多个消息泵的程序。然而,当一个表单处于焦点时,另一个消息泵上的表单调用BringToFront时,它将无法工作,因为它位于另一个消息泵上。有办法解决这个问题吗 该死,我真不敢相信我忘了加上那个。。。很抱歉,你会的! 语言:VB.NET 代码示例: Public Class Form1 Private Shared Test As New Form2 Private Sub Button1_Click(sender As Obj

我将直接进入这个问题。 基本上,我已经建立了一个需要多个消息泵的程序。然而,当一个表单处于焦点时,另一个消息泵上的表单调用BringToFront时,它将无法工作,因为它位于另一个消息泵上。有办法解决这个问题吗

该死,我真不敢相信我忘了加上那个。。。很抱歉,你会的! 语言:VB.NET 代码示例:

Public Class Form1
    Private Shared Test As New Form2

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Test.Invoke(Sub() Test.BringToFront())
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim T As New Threading.Thread(Sub()

                                          Application.Run(Test)
                                      End Sub)
        T.Start()
    End Sub
End Class
我使用Invoke()是因为表单是在不同的线程上创建的


首先按下按钮2,然后再次单击表单1,并尝试使用按钮1将表单2带到前面。

如果您在不同线程上运行windows,则可能需要使用。

欢迎使用SE。您可能希望在帖子中添加详细信息(使用
Edit
):哪种语言、演示问题的代码示例。。。作为指导方针。