【发布时间】:2013-01-08 03:15:48
【问题描述】:
在我们的团队中,我们面临着选择:我们需要调用外部第三方代码并从我们的 C# 代码处理其输出。
第三方代码有两种形式:一组dlls 和单个exe 文件(可能会单独调用这些dlls)。可能的方法可能是:使用Process.Start 语句运行可执行文件并捕获其输出。还有一种是直接拨打dll。
我正在尝试了解我们应该使用哪种方法。
一方面调用可执行文件很简单,但另一方面,它感觉不够健壮。
一方面调用dll 看起来更正确地完成这项工作,但另一方面——为我们在本机C 代码中拥有的所有函数提供C# 绑定可能是一项非常复杂的任务。
但我需要对此主题进行更深入的分析才能做出最终决定。有没有人遇到过同样的问题,也许你可以分享你的发现。
这将非常有用!
编辑:我说的是在这种特殊情况下的视频转换。我需要从用户那里获取视频流并将其转换为一种视频格式。可以调用ffmpeg 来完成这项工作,一切正常,直到出现问题并且我需要重新启动编码或采取任何措施。我无法估计需要多长时间以及是否需要并行转换多个视频ffmpeg 不会像我计划的那样灵活...
至少在我现在看来。当我深入研究时,也许会出现更多问题。
【问题讨论】:
-
您需要提供更多详细信息...并且:您尝试过什么?你做过什么测试吗?是否有任何依赖项(如 COM 或 USB/驱动程序或权限等)?是否存在不稳定因素?您需要哪种级别的控制/粒度/性能?
标签: c# dll native exe process.start