1
是否可以调用ShowDialog(),但在主窗体下创建对话窗口,而不是在顶端?C#线程同步(等待执行)
我打电话给ShowDialog,因为我想停止执行主程序。
我不需要对话窗口,因为我会从线程创建很多对话框,它们会阻止对方。
是否可以调用ShowDialog(),但在主窗体下创建对话窗口,而不是在顶端?C#线程同步(等待执行)
我打电话给ShowDialog,因为我想停止执行主程序。
我不需要对话窗口,因为我会从线程创建很多对话框,它们会阻止对方。
您需要读取线程的同步。要停止执行代码,请使用EventWaitHandle
对象。
而不是EventWaitHandle
创建和显示对话框通话WaitOne()
的:
private static EventWaitHandle ev;
//...
[MTAThread]
public static void Main()
{
//...
ev = new EventWaitHandle(false, EventResetMode.ManualReset);
//...
ev.WaitOne(); //Stop execution
//...
}
//Another thread function.
public static void ThreadProc()
{
//...
ev.Set(); //Continue execution of Main
//...
}
一个很好的例子是MSDN上。还请注意,在再次使用阻止之前需要先拨打Reset()
,或者使用EventResetMode.AutoReset
选项创建EventWaitHandle
(详情请参阅MSDN)。
你能解释一下你试图完成什么吗?这听起来像你正在做一个多线程的应用程序,并需要控制线程执行。有这样的机制,例如互斥体和信号量。 – user623879 2011-03-20 08:15:09
嗯..我所有的解释有问题,可能是我的英语很差 – kusanagi 2011-03-20 08:16:53
问题不清楚给我... – 2011-03-20 08:17:15