Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.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# 调试辅助项目作为进程从VS中的另一个项目运行_C#_Visual Studio 2010_Visual Studio_Debugging - Fatal编程技术网

C# 调试辅助项目作为进程从VS中的另一个项目运行

C# 调试辅助项目作为进程从VS中的另一个项目运行,c#,visual-studio-2010,visual-studio,debugging,C#,Visual Studio 2010,Visual Studio,Debugging,我有两个项目。其中之一是一个工作者应用程序,它可以做一些事情。另一个是工人的GUI(GUI运行作为工人实例的异步进程)。因此,worker项目输出是GUI使用的.exe文件 如何调试worker?有可能这样做吗?令人恼火的是,我可以为worker创建一个命令行界面,并为它生成某种引用参数以单独运行它,但问题是当我想对多个实例执行此操作时(我有一个程序生成一些异步数据,因此我必须在代码中找到一个错误,该错误在一个进程中运行良好,但在多个进程中出现错误)。关于gui和辅助进程之间的交互,您没有给出太

我有两个项目。其中之一是一个工作者应用程序,它可以做一些事情。另一个是工人的GUI(GUI运行作为工人实例的异步进程)。因此,worker项目输出是GUI使用的
.exe
文件


如何调试worker?有可能这样做吗?令人恼火的是,我可以为worker创建一个命令行界面,并为它生成某种引用参数以单独运行它,但问题是当我想对多个实例执行此操作时(我有一个程序生成一些异步数据,因此我必须在代码中找到一个错误,该错误在一个进程中运行良好,但在多个进程中出现错误)。

关于gui和辅助进程之间的交互,您没有给出太多信息,但如果附加到进程太难(通常是因为辅助进程只运行很短),一个更有用的场景是向gui添加一个配置选项,以向worker命令行添加一个额外的参数,在该命令行上,worker使用DebugBreak进行响应

var args = ParseArguments(); //check if string 'WaitForDeugger' is on command line
if( args.RequestsDebug )
  System.Diagnostics.Debugger.Break();

....
gui调用worker的方式如下:

var args = GetArgumentsForWorker();
if( someSpecialDebugOptionEnabled )
  args += " WaitForDeugger";
Process.Start( "worker.exe", args );

你不能直接将调试器附加到工作进程上吗?怎么做?你能告诉我一些方法吗?在VS、Ctrl-Alt-P或Debug->attach to process中我不明白。我应该附加到什么?我的GUI运行exe文件异步几次,当它们启动时,我应该将这些进程附加到我的GUI上吗我的工作人员中的
Thread.Sleep(10000);
?只是为那个案例键入了一个答案。。