我写了一个独立运行的表单类,并在按键时关闭。我希望能够同时运行此表单类的多个实例,并且无法弄清楚如何执行此操作。涉及线程的大多数示例都涉及使用指向特定例程的“addressof”,但我希望异步运行整个表单类的多个实例。
运行屏幕保护程序的表单称为“frmMain”,它在公共变量“MonitorNumber”定义的监视器上运行。运行下面的代码可以在我定义的任何一个监视器上正常工作,然后当有人移动鼠标时它就会自动关闭(就像它应该的那样)。
SSInst = New frmMain
SSInst.MonitorNumber = 0
SSInst.ShowDialog()
SSInst.Dispose()
很简单,这就是我想要做的事情:
SSInst = New frmMain
SSInst2 = New frmMain
SSInst.MonitorNumber = 0
SSInst2.MonitorNumber = 1
SSInst.ShowDialog()
SSInst2.ShowDialog()
SSInst.Dispose()
SSInst2.Dispose()
如果我能够运行它,我确信它会起作用,因为frmMain的实例是自包含的,但当然我无法运行它,因为代码会在SSInst.ShowDialog之后停止,直到该表单实例关闭
如何同时运行两个实例???
提前谢谢
答案 0 :(得分:1)
由于我假设表单处理了所有必需的关闭内容以及不需要的内容,以下内容适用于您:
SSInst = New frmMain
SSInst2 = New frmMain
SSInst.MonitorNumber = 0
SSInst2.MonitorNumber = 1
SSInst.Show()
SSInst2.Show()
application.DoEvents
Do While ssInst.Visible AndAlso ssInst2.Visible
Application.DoEvents
Loop
SSInst.Dispose()
SSInst2.Dispose()
答案 1 :(得分:0)
这应该让你开始:
System.Threading.ThreadPool.QueueUserWorkItem(AddressOf sub1)
System.Threading.ThreadPool.QueueUserWorkItem(AddressOf sub2)