Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检测Visual studio IDE是否正在关闭_C#_.net_Visual Studio - Fatal编程技术网

C# 如何检测Visual studio IDE是否正在关闭

C# 如何检测Visual studio IDE是否正在关闭,c#,.net,visual-studio,C#,.net,Visual Studio,下午好 在我的项目中(不是visual studio加载项!),我将按如下方式启动visual studio 2015: Type type = Type.GetTypeFromProgID("VisualStudio.DTE.14.0"); dte = (EnvDTE80.DTE2)Activator.CreateInstance(type); dte.MainWindow.Visible = true; dte.Solution.Open(UserPreferences.Instance.

下午好

在我的项目中(不是visual studio加载项!),我将按如下方式启动visual studio 2015:

Type type = Type.GetTypeFromProgID("VisualStudio.DTE.14.0");
dte = (EnvDTE80.DTE2)Activator.CreateInstance(type);
dte.MainWindow.Visible = true; 
dte.Solution.Open(UserPreferences.Instance.ProjectSlnFilePath);
现在,我注意到当我关闭IDE时,visual studio后台进程出于某种原因开始运行。我正在寻找一种方法来检测IDE何时被手动关闭,以便终止后台进程。 基于线程,我尝试执行以下操作:

dte.Events.DTEEvents.OnBeginShutdown += DTEEvents_OnBeginShutdown;
但它没有被触发。我尝试过其他活动,比如关窗等等,但似乎没有任何效果

有什么想法吗?
谢谢

可能重复的不是重复的。我已经把那条线连起来了,说它不起作用,怎么了?执行
EnvDTE.DTEEvents事件=dte.events.DTEEvents;events.OnBeginShutdown+=事件\u OnBeginShutdown完全相同-仍然不起作用。当您获得对它的引用时,它无法关闭。既然你启动了它,你就应该再次关闭它。让它可见肯定不是一个好主意,因为这会让用户期望他能掌控局面。但只要你这么做,就让他控制,停止使用界面。最好的方法是让您的程序终止。用户应该使用VisualStudio(他控制IDE)。但是,这种启动VisualStudio的方式会在出于某种原因手动关闭时让后台进程运行。因此想知道IDE何时关闭。