我编写了一个由 VBScript 访问的 C# DLL COM 库。所有库的东西都写在主程序中,没有任何形式。
后来我添加了一个只显示状态的表单(如“49% 完成”)。这工作得很好,但是当 DLL 必须计算很多东西时,表单会“挂起”。我希望表单始终可以访问和移动。
所以我决定为表格制作一个自己的线程。创建线程和表单很容易,但是从主程序访问此表单时我遇到了很大的问题。例如,我只想设置标题。
我这样称呼表格:
namespace PART1.PART2
{
public class CLASSNAME
{
private Thread fStatus;
private frm_Status fStatusForm;
public void runShowStatus()
{
if (fStatus == null)
{
fStatus = new Thread(new ThreadStart(threadForm));
fStatus.Start();
}
}
private void threadForm()
{
fStatusForm = new frm_Status();
Application.Run(fStatusForm);
}
}
}
表格本身是标准表格。目前没有特殊代码。
有类似的帖子,但有两个主要区别:
- 表单在线程中 - 表单不在主程序中,并且表单不是主表单。
- 主程序尝试访问表单 - 表单不尝试访问主程序。