- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我工作的应用程序是一个几乎完全用 Visual C++ 大约在 2003 年编写的 WinForms 应用程序。在我到达现场之前,由于 UI 构建框架而选择了 .NET,但绝大多数代码是在非托管领域开发的.其中一部分是绝对必要的——我们对一些非常大的数据集进行一些实时图像处理,使用一些需要指向图像缓冲区的指针的英特尔图像处理库,我们确实在不到 1% 的情况下性能有那么重要吗?
该应用程序本身是一个大型可执行文件,通过将 UI 代码链接到几个静态库而形成,每个静态库都对应一个功能子系统——数据采集、图像处理等。自从我加入以来,我通过编写托管包装器将其中几个子系统拆分为 DLL,我们在其他应用程序中重用它们,但主应用程序仍然基本上由静态链接库组成。
我的同事和我在进一步发展应该强调非托管还是托管方面存在很大分歧。除了我提到的情况外,没有规定非托管代码的性能要求。我们坚定地致力于 .NET,因此跨平台不是问题。我认为除非另有规定,否则我们应该支持托管。
上个月,我的同事开发了一组管理子系统的类;他没有将它们实现为 ref 类并将一些事件添加到 .NET 接口(interface),而是编写了几个 Observer 实现,使用 gcroot 来保存托管客户端的句柄,并允许自己留在非托管领域。这在我看来是错误的,只是因为为什么要写一些你可以免费拥有的东西?但我想知道我是否过于刻板。
有什么想法吗?
最佳答案
没有单一的正确或错误答案,除了说你倾向于管理而你的同事倾向于非管理绝对是错误的。无论您选择哪种方式,您都需要达成一致,以免使某些代码托管和某些代码未托管的问题变得更糟。
您说“我们坚定地致力于 .NET”。这里的“我们”是谁?是你的公司还是你和你的同事?听起来您的同事对 .NET 不太投入。如果公司 promise 而同事不 promise ,那么需要有人向你的同事重申他是团队的一员,需要遵循公司的方向。
如果决定真的取决于你们两个,而你的同事不让步,那么你应该考虑默许。
我们也有一个大型托管/非托管应用程序,除非我们绝对必须这样做,否则我们永远不会考虑在非托管中做任何事情。应用程序的大部分是托管的。这样会好很多。但这是我的看法,不是事实。
关于unmanaged - 在混合 C++ .NET 应用程序中强调托管还是非托管?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/566246/
阅读关于Dispose pattern ,我看到文档反复提到“清理托管和非托管代码”。而在 Dispose 的规范实现中方法,我看到了专门用于清理托管对象与非托管对象的特定流程(取决于 disposi
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 9
我有一个接收一些参数、分配内存并返回指针的外部方法。 [DllImport("some.dll", CallingConvention = CvInvoke.CvCallingConvention)]
有谁知道如何更改/clr 开关的默认行为以使所有文件在默认情况下不受管理?开关的默认行为是管理所有文件。我知道我可以单独标记每个 .cpp 文件,但是它们有很多... 最佳答案 我最终在项目属性中关闭
F# 支持“非托管”的类型约束。这与“结构”约束之类的值类型约束不同。 MSDN notes非托管约束的行为是: The provided type must be an unmanaged type
我工作的应用程序是一个几乎完全用 Visual C++ 大约在 2003 年编写的 WinForms 应用程序。在我到达现场之前,由于 UI 构建框架而选择了 .NET,但绝大多数代码是在非托管领域开
有时,很难描述一些“我们程序员”可能认为对非程序员和管理类型来说很简单的事情。 所以... 您如何向非程序员描述托管代码(或 Java 字节代码)和非托管/ native 代码之间的区别? 最佳答案
我有一个 fortran dll,我想知道它依赖于 redistribution purpose 的程序集. 我发现的一件事是,dependency walker 没有显示所有的依赖项,即我的程序集依
我观察到带有 unmanaged.dll.manifest 文件标记的 unmanaged.dll 文件。在编辑器中打开此文件时,它似乎是普通的 XML,带有指向某些其他依赖管理的链接?组件。这似乎是
我正在调用一个 DLL,该 DLL 返回一个 void** 结构指针列表,所有类型都相同。 From what I've read ,为了将我的结构从该列表中转换出来,该结构需要被视为非托管。我试图编
我有时在谈论 .NET 时听到/读到它,例如“托管代码”和“非托管代码”,但我不知道它们是什么以及它们有什么区别。根据定义,它们有什么区别?使用其中任何一个的后果是什么?这种区别仅存在于 .NET/W
如何调用以下函数: func AXUIElementCopyAttributeNames(element: AXUIElement!, names: UnsafePointer?>) -> AXErr
我在我的新应用中使用 Swift。在这里,我试图从 AddressBook 访问电子邮件 ID。一切看起来都很好,但最后我变得不受管理了!来自 ABMultiValueCopyValueAtIndex
在分析我的应用程序的内存使用情况时,我遇到过这个图表: 如您所见,在“快照 1”行之前,非托管内存大约占已用内存总量的一半。然后,在“快照 1”和 2 分 55 秒(参见下面的时间线)之后,我强制执行
我想知道 C# 7.3's Unmanaged type constraint提供语言支持以强制类型可 blittable。根据Blittable and Non-Blittable types正确地
我正在使用此处描述的模式来管理处置: http://www.developerzen.com/2006/01/09/finalizableobject-developing-a-base-class-
我们的一个网络应用实例的 CPU 负载很高,我正在尝试调查原因。 AI中记录了一些轮廓痕迹。它们都包含一个很长的“非托管异步”事件。 这个“非托管异步”是什么意思? 最佳答案 .Net 框架发出 ET
我们的一个网络应用实例的 CPU 负载很高,我正在尝试调查原因。 AI中记录了一些轮廓痕迹。它们都包含一个很长的“非托管异步”事件。 这个“非托管异步”是什么意思? 最佳答案 .Net 框架发出 ET
自 Swift 2 起,可以从 Swift 调用采用 C 回调的 C 函数,而无需中间包装器。 许多 C 事件处理 API 都遵循首先创建上下文的模式: struct Context { CF
我想要的是用 swift 将 RSA Sec key 转换为 base64 编码的字符串。所以我初始化了一个变量,如下所示, var publicKeyBits = Unmanaged?() 然后它给
我是一名优秀的程序员,十分优秀!