我的主要流程没有UI,我想要做的是循环浏览项目并根据项目显示表单。
以下是我所拥有的:
private void SomeMethod(UIObject uiObject, string id)
{
var thread = new Thread(() => LoadForm(id, uiObject.ControlType));
thread.Start();
} // breakpoint here
请注意,我还没有以任何方式编码以防止循环逃跑,因为我现在设置一个断点并尝试让它在调试中首先运行。
这是LoadForm:
private void LoadForm(string id, string controlType)
{
var form = new AddControlForm();
form.Show();
form.ControlId = id;
form.ControlType = controlType;
Application.Run();
}
正如你所看到的那样看起来相当标准,现在我正在寻找的结果是在SomeMethod中开始的线程,并且因为我设置了一个断点,所以主线程应该停止,因为表单已经创建并显示在另一个线程,我希望它在屏幕上和响应。
这没有发生,形式无处可寻。我的方法出了什么问题?
答案 0 :(得分:2)
您需要使用Application.Run(form)
才能在当前线程上启动新的消息循环。
答案 1 :(得分:1)
当您在断点处中断时,通常所有线程都会暂停,因此可能根本不会调用Application.Run()
。
如果你在SomeMethod()
?