我有2个不同的应用程序同时运行。一个是隐藏表单的应用程序,没有任务栏图标只有通知图标表单 此应用程序是自主服务器,因此它必须保持隐藏状态 第二个是启动和重置第一个应用程序的代理
主窗体添加了事件处理程序:
public Form1()
{
this.FormClosing += Form1_FormClosing;
}
private void doDispose() {
//Takes time to disconnected
//about 1 seconds delay
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
doDispose();
}
代理应用程序中的代码(在app上调用reset action)
private void resetApp() {
var process = //get process from Prcesses collection
try
{
process.CloseMainWindow(); <- not raising closing event in the main form
process.WaitForExit(1000);
process.Close();
}
catch
{
}
}
我尝试了不同帖子中的一些东西。比如,使用process.MainWindowHandle
访问主模型,但因为表单被隐藏,它总是返回零。
PS - 当手动关闭隐藏表单的第一个应用程序时,会引发事件并按原样执行断开连接过程。从第二个代理应用程序关闭它不起作用
谢谢
答案 0 :(得分:0)
根据您关闭表单的方式,它可能会也可能不会触发Closing事件,请参阅wmClose上的Form.cs源代码()
您是否尝试重写Dispose方法?
sum(
sum (count(distinct SDDoc)) , (count(distinct case when Netvalue = '0' then 1 else null end)) As result)