C#在应用程序之后执行代码。run()

C#在应用程序之后执行代码。run(),c#,winforms,C#,Winforms,我有一个类似的问题: 但是那里的解决方案对我不起作用,因为我没有运行表单,我运行的是一个自定义控件,它是一个托盘图标,用于监视事物。(与图标Dropbox类似,这是用户与程序的唯一界面) 创建控件时,我应该如何运行代码?(必须在泵启动消息之后)我想您正在寻找事件 在应用程序完成时发生 正在处理,即将进入 空闲状态 例如 第一种选择是向自己发布一条windows消息。这样,在线程开始发送消息之前,它不会被调度。第二个选项是挂接到Application.Idle事件,该事件在消息队列为空时触发。您的

我有一个类似的问题:

但是那里的解决方案对我不起作用,因为我没有运行表单,我运行的是一个自定义控件,它是一个托盘图标,用于监视事物。(与图标Dropbox类似,这是用户与程序的唯一界面)


创建控件时,我应该如何运行代码?(必须在泵启动消息之后)

我想您正在寻找事件

在应用程序完成时发生 正在处理,即将进入 空闲状态

例如


第一种选择是向自己发布一条windows消息。这样,在线程开始发送消息之前,它不会被调度。第二个选项是挂接到Application.Idle事件,该事件在消息队列为空时触发。您的第三个选项是设置并运行一个小时间段的计时器,并在计时器过期时挂接到Tick事件。第四个也是最后一个问题是异步激发一个委托,因为他们使用消息队列作为激发机制。

如果您发布了当前的代码,这个问题将更容易理解/回答。谢谢,这正是我想要的。我只需要确保它只在第一次调用时运行,并且它将是完美的。我想我会在完成后删除该代表。
Application.Idle += delegate { Console.WriteLine(Application.MessageLoop); };

// Output: true 
Application.Run();