为什么控制台应用程序比c#中的表单应用程序花费更多

时间:2011-01-24 07:16:33

标签: c# image-processing console-application

我创建了一个类库(称为GNGEngine.dll),它执行一些图像处理工作。这个dll包含一个函数ProcessBitmap()作为搜索特定模式的主函数。我已经通过创建其他表单应用程序并参考了dll来测试引擎。我通过单击按钮调用dll的ProcessBitmap()方法。表单应用程序需要8秒才能完全处理图像。

现在根据客户要求我创建了一个exe(控制台应用程序)文件GNGEngineRunner.exe,它以图像文件名作为参数。我创建了dll类的对象并调用方法ProcessBitmap()并传递文件以进行处理。相同的图像现在需要几分钟的处理时间。

有什么具体原因,为什么花费太多时间?

感谢您分享宝贵的时间。

2 个答案:

答案 0 :(得分:1)

你没有告诉我们你在做什么或你是怎么做的,这使得几乎不可能真正回答......但你的第一步应该是得到一些正确的痕迹。插入一定数量的日志记录(包括时间戳),然后应该合理地清楚您的过程中的时间进度。在控制台版本和Windows窗体版本中运行它。然后专注于瓶颈 - 可能会向另一个问题询问更多细节

答案 1 :(得分:1)

首先,你应该附上一个分析器,看看发生了什么。如果您没有,可以使用http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/

上的试用版

Visual Studio内置了一个性能分析器,但根据你的VS版本,它可以是来自不存在,蹩脚或好的任何东西。

其次,没有理由这样做。我猜测问题是由于引用了不存在的表单/ GUI对象或类似问题而导致异常被抛出。执行智能控制台或WinForm是100%相同,你甚至可以在一个应用程序中混合使用它们。唯一的区别是一些引用以及您创建控制台窗口而不是表单的事实。

随意添加更多详细信息和可能的代码。

相关问题