C#在application.run()之后执行代码

我有一个与此类似的问题: 如何在表单启动后执行代码?

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

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

我想你正在寻找Application.Idle事件。

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

例如

 Application.Idle += delegate { Console.WriteLine(Application.MessageLoop); }; // Output: true Application.Run(); 

第一种选择是向自己发布一条Windows消息。 这样,在你的线程开始抽取消息之前不会发送它。 第二个选项是挂钩Application.Idle事件,该事件在消息队列为空时触发。 你的第三个选择是设置和运行一个小持续时间的定时器,并在它到期时挂钩到Tick事件。 现在的第四个也是最后一个是在使用消息队列作为被触发的机制时异步触发委托。