我有两个项目。其中之一是一个工作应用程序,它可以做一些事情。另一个是工作人员的 GUI(GUI 运行作为工作人员实例的异步进程)。因此,worker 项目输出是一个.exe
由 GUI 使用的文件。
如何调试工人?有没有可能这样做?烦人的事情是我可以为工作人员创建一个命令行界面并为其生成某种参考参数以单独运行它,但问题是当我想为多个实例执行此操作时(我有一个生成的程序一些数据异步,所以我必须在我的代码中找到一个错误,该错误在一个进程中运行良好,但在多个进程中存在错误)。
我有两个项目。其中之一是一个工作应用程序,它可以做一些事情。另一个是工作人员的 GUI(GUI 运行作为工作人员实例的异步进程)。因此,worker 项目输出是一个.exe
由 GUI 使用的文件。
如何调试工人?有没有可能这样做?烦人的事情是我可以为工作人员创建一个命令行界面并为其生成某种参考参数以单独运行它,但问题是当我想为多个实例执行此操作时(我有一个生成的程序一些数据异步,所以我必须在我的代码中找到一个错误,该错误在一个进程中运行良好,但在多个进程中存在错误)。
您没有提供太多关于 gui 和 worker 之间交互的信息,但是如果附加到进程太难(通常因为 worker 只运行短暂),更有用的场景是向 gui 添加配置选项以向工作人员命令行添加一个额外的参数,工作人员在该命令行上使用 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 );