You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EventID 1002:C++ MFC应用Microsoft Store更新后挂起问题咨询

C++ MFC应用Microsoft Store更新挂起问题排查

问题背景

我开发了一款C++ MFC应用,通过Microsoft Store进行更新时会出现挂起情况,更新完成后无法继续运行。推测应用的主UI线程出现了阻塞(未更新时应用运行正常)。

核心问题

  1. 如何确保应用在更新后能够持续运行?
  2. 有哪些方法可以模拟更新过程,例如向应用发送Windows消息、调用相关API等?

复现步骤

  • 在Windows 10系统上启动该应用
  • 打开Microsoft Store,进入“库”页面,点击“获取更新”

复现结果

  • 更新下载过程中应用保持运行状态
  • 应用被终止,且未自动重启
  • Windows事件日志中出现如下条目:
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
  <Provider Name="Application Hang" /> 
  <EventID Qualifiers="0">1002</EventID> 
  <Version>0</Version> 
  <Level>2</Level> 
  <Task>101</Task> 
  <Opcode>0</Opcode> 
  <Keywords>0x80000000000000</Keywords> 
  <TimeCreated SystemTime="2024-05-20T20:18:03.1169635Z" /> 
  <EventRecordID>6018</EventRecordID> 
  <Correlation /> 
  <Execution ProcessID="0" ThreadID="0" /> 
  <Channel>Application</Channel> 
  <Computer>win10</Computer> 
  <Security /> 
  </System>
- <EventData>
  <Data>App.exe</Data> 
  <Data>1.0.0.1</Data> 
  <Data>289c</Data> 
  <Data>01daa70704524710</Data> 
  <Data>4294967295</Data> 
  <Data>C:\Program Files\WindowsApps\....</Data> 
  <Data>some guid</Data> 
  <Data>....</Data> 
  <Data>App.exe</Data> 
  <Data>Quiesce</Data> 
  <Binary>510075006900650073006300650000000000</Binary> 
  </EventData>

额外疑问

Microsoft Store使用何种机制终止应用?注:我的应用会拦截WM_CLOSE消息,将窗口最小化至系统托盘。

已尝试的测试方法

通过调用Windows API IsHungAppWindow()并结合Parallels的“不良网络”设置模拟弱网环境,测试应用是否会挂起。测试代码如下,结果显示应用未挂起(屏幕持续输出大量点):

#include <iostream>
#include <windows.h>
#include "Tchar.h"
#include "winuser.h"

#include <chrono>
#include <iostream>
#include <thread>

int main()
{
  using namespace std::chrono_literals;
  HWND h = ::FindWindow(NULL, _T("AppWindowName"));
  if (h)
  {
      std::cout << "Found Window!\n";
      while (true) {
          BOOL r = IsHungAppWindow(h);
          if (r == TRUE) {
              std::cout << "app hang detected!!\n";
              exit(0);
          }
          else {
              std::cout << ".";
          }
          std::this_thread::sleep_for(200ms);}
  }

    std::cout << "End!\n";
}

内容的提问来源于stack exchange,提问作者Wayne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 19:32:23