挂起互操作 COM 对象的问题

2024-02-15

我有一个应用程序,它使用 COM 互操作来创建一个电子表格,该电子表格在客户端计算机上的 Excel 中打开。但是,如果我查看任务管理器,当用户关闭 Excel 时,EXCEL.exe 进程并不总是结束。

如果我保存工作簿并以编程方式关闭 Excel,我只需使用Marshal.ReleaseComObject()清理,但由于我依赖于手动关闭程序,我不知道该怎么做。有什么建议么?


在释放所有进程外对象之前,Excel 无法终止。所以它只是隐藏其用户界面并继续运行。直到程序退出或清空所有 Excel 对象引用并且终结器线程运行。退出程序将是一个显而易见的解决方案。或者您可以强制终结器线程运行:

GC.Collect();
GC.WaitForPendingFinalizers();

ReleaseComObject() 很少起作用,因为很容易忘记中间 COM 对象引用。与 WorkBooks[index] 一样,这是一个您看不到的枚举器。让 GC 自己做出决定将是更明智的选择,如果你继续运行和工作,那么这种情况就会发生。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

挂起互操作 COM 对象的问题 的相关文章

  • 为什么 C# Array.BinarySearch 这么快?

    我已经实施了一个很简单用于在整数数组中查找整数的 C 中的 binarySearch 实现 二分查找 static int binarySearch int arr int i int low 0 high arr Length 1 mid
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • 在 Windows 窗体中保存带有 Alpha 通道的单色位图会保存不同(错误)的颜色

    在 C NET 2 0 Windows 窗体 Visual Studio Express 2010 中 我保存由相同颜色组成的图像 Bitmap bitmap new Bitmap width height PixelFormat Form
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • 使用 XMLHTTP 进行抓取会在特定类名处引发错误

    我正在尝试使用此代码抓取网站以提取姓名和联系人 Sub Test Dim htmlDoc As Object Dim htmlDoc2 As Object Dim elem As Variant Dim tag As Variant Dim
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • 通过内联汇编操作c变量[重复]

    这个问题在这里已经有答案了 可能的重复 如何访问 c 变量以进行内联汇编操作 https stackoverflow com questions 14617953 how to access c variable for inline as
  • .net core build 生成本地化文件夹

    我有一个使用 net core 2 0 的 web asp net 解决方案 我正在使用以下命令构建它 dotnet publish MySolution sln configuration release output d test ou
  • `new_root.mainloop()` 不会使主窗口无响应

    假设我有这个 tkinter 脚本 import tkinter as tk def callback new root tk Tk new root mainloop print Done root tk Tk button tk But
  • 由于“仅允许安全来源”而无法使用 navigator.geolocation

    自从我使用以下命令创建网站以来 控制台中出现错误navigator geolocation getCurrentPosition 以下 我意识到这会在未来的某个时候引起问题 而且由于我只玩网络开发 所以我并没有太担心 但它现在已经完全搞砸了
  • 无法与 WPA2 android 连接

    我正在使用以下代码与 Android 中的 WPA2 连接 我可以与 WEP 和 WPA 连接 但我只获得 扫描 状态 我无法连接 WPA2 网络 你能告诉我需要进行哪些更改才能使此代码与 wpa2 WiFi 相关吗 private boo
  • SQLite3如何使用索引?

    我正在研究 SQLite3 索引 这是一个表 COMPANY CREATE TABLE COMPANY ID INT PRIMARY KEY NOT NULL NAME TEXT NOT NULL AGE INT NOT NULL ADDR
  • 如何在软件中将两个物理串行端口相互桥接(并记录穿过的数据)?

    基本上 我想将我的计算机放在串行线中间并记录通过它的对话 我正在尝试对这段对话进行逆向工程 并最终模拟对话的一端 我正在尝试做的事情的粗略图 通常 我有这个 Device 1 lt gt Device 2 我想做这个 Device 1 lt
  • 如何为 API 客户端提供端点的最新验证规则?

    在我们的 API 中 我们希望实现允许客户端提取验证规则的解决方案 同步验证规则和 您的密码应该是 8 100 个符号 等字段下的任何有用文本将很有用 例如 当客户端请求注册验证规则时 API 使用以下 JSON 进行响应 email ht
  • 未找到具有有效 http:// 前缀的活动(浏览器)

    所以我的应用程序出现了异常 如下所示 android content ActivityNotFoundException No Activity found to handle Intent act android intent actio
  • 在 web.config 中设置要加载的 DLL 的位置

    是否可以在 web config 中设置要加载的特定 DLL 的本地文件路径位置 而不是将这些 DLL 放在 GAC 中或C Windows System32 这将使部署 Web 服务变得更加容易 而不必搞乱其中任何一个 我已经尝试将 DL
  • 有什么方法可以为函数指针比较生成警告吗?

    我花了很长时间才发现我的代码中有一个错误被触发 OPT ICF Because OPT ICF 可以导致相同的地址被分配给不同的函数或只读数据成员 使用 Gy 编译的 const 变量 它可能会破坏依赖于函数或只读数据成员的唯一地址的程序
  • Git 挂钩脚本可以与存储库一起管理吗?

    我们想要制作一些我们都可以共享的基本钩子脚本 用于预格式化提交消息之类的事情 Git 有钩子脚本 通常存储在
  • Xcode 6 链接器错误 - 架构 armv7 的未定义符号

    升级到 Xcode 6 beta 7 现在仍然使用 Xcode 6 GM 后 我无法链接我的 Swift 应用程序 我收到如下错误 架构armv7的未定义符号 swift stdlib compareNSStringDeterministi
  • 回收位图

    我正在从事涉及位图操作的项目 因为我不想出现 OutofMemoryError 所以我尝试回收每个未使用的位图 不幸的是 我回收了太多并且出现了 尝试使用回收的位图 错误 我在用 Bitmap createBitmap bmp x y w
  • 如何检查设备是否已加入 AD 或 Azure AD 加入/注册?

    我需要检查我的设备是否已加入本地域或 Azure AD 加入 注册 如何检查这个 我试过NetGetJoin信息 https learn microsoft com en us windows desktop api lmjoin nf l
  • 如何跨面或网格绘制 geom_line [重复]

    这个问题在这里已经有答案了 我的数据 Plate Month Day Concentration A April 1 17 1094 B April 2 16 001 C April 3 17 9501 D April 4 18 3686
  • 当 NSPasteboard 添加内容时收到通知

    在我的应用程序中 如果 NSPasteboard 中添加了某些内容 我希望收到通知 如果我从任何其他程序复制文本 我希望我的应用程序知道它 我在某处读到 不能那样做 我应该创建一个计时器并自己检查 NSPasteboard 的内容 这是要做
  • 检查Python脚本中的程序是否存在[重复]

    这个问题在这里已经有答案了 如何从 python 脚本检查程序是否存在 假设您想检查是否wget or curl可用 我们假设它们应该在路径中 最好能看到多平台解决方案 但目前 Linux 就足够了 Hints 运行命令并检查返回代码并不总
  • client.user.setActivity 发现为 null? (节点.js)

    我正在尝试将我的 Discord 机器人的活动设置为 游戏 但是我在网上找到的示例根本没有帮助 client user setActivity what the bot is playing 根本不起作用 它给了我这个错误 说明我正在尝试找
  • 挂起互操作 COM 对象的问题

    我有一个应用程序 它使用 COM 互操作来创建一个电子表格 该电子表格在客户端计算机上的 Excel 中打开 但是 如果我查看任务管理器 当用户关闭 Excel 时 EXCEL exe 进程并不总是结束 如果我保存工作簿并以编程方式关闭 E