希望提高C#.Net应用程序的性能..
在我的应用程序中,我正在使用第三方Interop / Dll来处理.doc文件。
这是一个简单的操作, 哪个传递输入/输出FilePath到Interop dll ...& dll将执行文本格式的输入文件。
为了提高性能,我尝试过,
但是所有选项都需要大约相同的时间(32秒)来处理32个文件。手动过程花了相同的32秒来处理32个文件。
刚试了一件事..当我创建了示例exe来处理16个文件作为输入&输出参考TextBox中给出的路径。
..我打开2个exe实例来处理。 1个exe有不同的16个输入文件&输出使用输入文件路径创建 2 exe有不同的16个输入文件&输出使用输入文件路径
创建当我点击两个exe的开始按钮时,使用100%cpu&显着利用核心和进程在16秒内完成32个文件。
我们能否提供这种明确的并行性来改善我的申请表现?
答案 0 :(得分:1)
要做的就是分析您的应用程序,看看它花费的时间。然后,您可以计划优化瓶颈。试图在不知道慢速部分的位置进行优化并不是最好地利用你的时间,因为你在黑暗中刺伤,希望有些东西有效。找出问题所在并直接解决这些问题。
有几个问题推荐个人资料。查看this question和this question。
答案 1 :(得分:0)
问题可能是您的第三方工具以某种方式在线程之间进行同步。如果它使用单线程(“STA”)COM组件来完成工作,则可能会隐式发生这种情况。您可以通过在调试器中运行时断开应用程序来验证这一点,并查看worker和UI线程的调用堆栈。