草庐IT

NAT模式

全部标签

c++ - 如何从启用优化( Release模式)构建的二进制文件中分析故障转储?

到目前为止,我一直在项目中使用Debug模式二进制文件。因此,使用保留的符号文件很容易分析故障转储。现在我必须在Release模式下发布二进制文件。我们如何分析由Release模式二进制文件生成的转储文件。这有可能吗?我如何识别Release模式下的功能?(不需要生成和保存map文件) 最佳答案 您需要与可执行文件相对应的.pdb文件。这会给你符号。调试发布版本有几个棘手的部分:由于优化,操作顺序可能会发生变化整个函数/变量/等等。可能会被优化掉特别是,传递给函数的参数可能不存在(例如,“this”可能是一个寄存器,而不是内存中的一

c# - 在可重启模式下以编程方式在多个 block 中并行下载文件

我需要通过非常慢的网络连接使用HTTP协议(protocol)下载一个大文件。手动执行时,下载速度有时慢得令人无法忍受,而且进程有时会卡住或终止。对于手动下载,使用下载管理器(例如FDM)可以大大改善这种情况——这类程序在大约十年前是不可或缺且非常流行的,但如今由于更好的应用程序,其使用量迅速减少和更快的可用网络——它从不同位置开始以block的形式并行启动同一文件的多个下载session,自动重新启动失败或过时的session,实现工作平衡(在成功下载一个block后,拆分一些仍在下载的剩余block分为两个session),并最终将所有下载的block拼接成一个完整的单个文件。总的

c# - 不寻常的垃圾收集模式

我在.net4.0下看到一些不寻常的垃圾收集模式,我无法解释,如有任何建议,我们将不胜感激。在我的程序运行的不同时间,G2收集计数开始增加并且GC%时间接近100%。这会持续一段时间然后停止(请参阅下面的性能监视器屏幕截图)。在此期间,CLRGCETW事件的PerfView跟踪显示许多长时间运行的G2收集被连续触发,原因为“AllocSmall”。任何人都可以阐明:具体是什么导致了“AllocSmall”事件为什么这些会直接触发G2收集为什么这些G2收集会背靠背发生LowMemory似乎不是问题,因为GC启动事件不将其作为原因代码(http://msdn.microsoft.com/e

c# - 推荐工作流应用程序的设计模式

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭上个月。Improvethisquestion我正在开发一个应用程序,用户可以在其中执行任务/工作流。每个任务都由要执行的操作队列组成。我希望能够在工作流启动后获得用户输入。示例:任务开始Action1开始Action1结束Action2开始Action2结束Action3需要用户输入(UI打开窗口获取用户输入)Action3获取用户输入Action3开始Action3结束任务结束我正在用C#开发这个,我知道WorkflowFound

c# - 为 ASP.Net Web API 生成 JSON 模式

我希望为WebAPI生成JSON架构,包括来自XML注释的文档。它主要是为了让我可以将其导入我们的API文档(使用apiary.io)我已经设法通过添加swagger(和swashbuckle)然后在每个服务上使用原始链接来获得变通解决方案-但理想情况下我想要一些更干净的东西,它适用于所有api(这必须在每个服务上完成/Controller),并且没有那么多依赖项。在我去看看swagger是如何做到这一点并查看它是否可以被提取之前,最好知道是否有现有的方法可以做到这一点? 最佳答案 是的,您可以依赖Swagger,它有一个名为swa

c# - 桥梁模式与策略模式

我知道,这个问题被问过很多次了,但我做了一些研究,但还是没弄明白,也许你能帮我解决这个问题:正如多次声明的那样,UML几乎是相同的。此外,实现和想法或多或少是相同的:您定义一个接口(interface),而不是子类型,它封装了一些逻辑并让它传递给抽象。所以,即使是Microsoft博客专家https://blogs.msdn.microsoft.com/gyanjadal/2015/01/05/difference-between-strategy-and-bridge-patterns/说:Thesimpleansweris“Theyaresimilarbutdifferent”.T

c# - 你如何(单元)测试数据库模式?

当有很多人从事一个项目时,所有人都可以更改数据库模式,单元测试/测试/验证它的最简单方法是什么?到目前为止,我们的主要建议是为每个表编写测试以验证列名、约束等。有没有其他人做过类似/更简单的事情?我们将C#与SQLServer结合使用,如果这有任何真正的区别的话。更新:我们正在处理的项目部分使用SSIS包来完成大部分工作,因此只有很少的C#代码可以再次编写单元测试。用于创建表/存储过程的代码分布在SQL文件中。由于构建系统,我们也可以维护一个单独的VSDB项目文件,但我不确定这将如何帮助我们验证架构。 最佳答案 一个可能的答案是使用

c# - Teamcity 未在 Release模式下构建我的 .SLN

我使用“SLNRunner”在Teamcity6.5中为VS2008解决方案创建了一个发布配置项目。我的调试解决方案与PDB文件一起构建得很好——但是我根本无法在Release模式下构建它,而且它会坚持默认为x64架构。我尝试了以下方法:明确设置proj文件为Release模式设置构建参数以显式通过/platform:anycpu和/configuration:release发送到MSBuild我注意到在生成的.sln.proj文件中,以下代码似乎(乍一看)不正确,并且两种配置的配置都设置为Debug模式?DebugAnyCPUDebugAnyCPU感谢任何帮助:

c# - 仅在 IDE 之外的 Release模式下 x64 .NET 4.0 应用程序崩溃

所以,我的小测试应用程序遇到了一个非常奇怪的问题。就问题而言,我的意思是它崩溃了……很难。没有异常(至少,没有我能捕捉到的)被抛出,只是“BlahBlah已经停止响应......”消息。它仅当我在x64、Release模式和IDE之外运行应用程序时崩溃。如果我在x86模式下运行它,或者如果我在x64的IDE中运行它,或者我在x64中作为DEBUG独立运行它,它工作正常。我已将其缩小到我的p/invokePeekMessage调用。所以,我需要这里的聪明才智来查看我写的废话,并告诉我我做的是否正确。因为,说真的,我他妈的快要失去理智了。我在两台计算机上试过这个,它们都表现出相同的行为。我

c# - Presenter 是否在 MVP 模式中执行 GUI 逻辑?

我们正在使用MVP模式,我想知道如何处理GUI操作。例如,当用户想要从网格中删除一行时,用户按下删除按钮。此时你可以做两件事:1)调用_presenter.DeleteRow(),然后演示者调用_view.SelectedRow。然后演示者调用view.AskUserForConfirmation(),当它返回DialogResult.OK时,演示者实际上删除了底层对象并刷新了网格。2)表单要求用户确认,当DialogResult为OK时,调用presenter.Delete(myObject)或presenter.Delete()被调用,在Delete方法中通过调用_view.Sel