我正在尝试在我的最新项目中实现 MVP 模式。目前使用 C++ Builder 2007 附带的 VCL 库。我的想法是我不需要执行 Application->Run(),或者更糟糕的是 Application->CreateForm(),它创建一个主窗体并在该窗体上循环。我不想要一个主表单,我想要一个主Presenter。
然后我的问题变成了如何创建线程化的 TForms?
选项 1: 如果只有一个消息循环(Presenter),那么我系统中的每个随机线程都必须向该主线程发布消息并让它创建表单。
选项 2: 每个表单都有自己的消息循环。现在随机线程可以根据需要新建和删除它们。发布消息仍然用于它们之间的通信。
如果建议使用选项 2,是否有人对实施这种方法有任何建议?
编辑: 我如何更改以下内容以允许使用new创建表单并仍然允许循环工作?
// Start VCL library
pApplication->Initialize();
// Create the Main form and assign the MainForm property
pApplication->CreateForm(__classid(TForm1), &pFormMain);
// Show the form
pFormMain->Show();
// Run the loop
pApplication->Run();