我有以下内容:
public static Form1 MainForm = new Form1();
static ManualResetEvent _running = new ManualResetEvent(false);
[MTAThread]
private static void Main()
{
int startin = 60 - DateTime.Now.Second;
var t = new System.Threading.Timer(o => Analyze(),
null, startin*1000, 60000);
_running.WaitOne();
}
public static void Analyze()
{
Action a = new Action(() => MainForm.ShowDialog());
MainForm.Invoke(a);
}
我很难尝试显示我唯一拥有的形式 - MainForm。
我在这里做错了什么?
答案 0 :(得分:1)
当您致电MainForm.Invoke
时,您告诉表单安排从应用程序循环运行的操作,表单正在运行。当您调用该方法时,表单没有应用程序循环,因此无法运行您已安排的操作,因此无法运行。
具有讽刺意味的是,您尝试在应用程序循环中安排的操作是创建应用程序循环。
您需要启动应用程序循环(使用Application.Run
),创建表单,然后在完成后,您可以为该应用程序安排工作。