C# WorkflowRuntime.StopRuntime被卡住

C# WorkflowRuntime.StopRuntime被卡住,c#,.net,windows-services,workflow,workflow-foundation,C#,.net,Windows Services,Workflow,Workflow Foundation,我有一个非常基本的工作流托管在一个windows服务(C#,.NET3.5)中,有一个奇怪的问题 配置: 运行时和工作流实例在同一线程中创建 我有一个后台线程在一个“无止境”循环中对实例执行Start,以使其持续运行 当工作流引发异常时,我希望清理并关闭服务。问题是,它不起作用:) 我有一个停止方法,基本上可以: … backgroundThread.Join(…) 如果(workflowRuntime.isStarted) workflowRuntime.StopRuntime() … 这

我有一个非常基本的工作流托管在一个windows服务(C#,.NET3.5)中,有一个奇怪的问题

配置:

  • 运行时和工作流实例在同一线程中创建
  • 我有一个后台线程在一个“无止境”循环中对实例执行Start,以使其持续运行
当工作流引发异常时,我希望清理并关闭服务。问题是,它不起作用:)

我有一个停止方法,基本上可以:


backgroundThread.Join(…)
如果(workflowRuntime.isStarted)
workflowRuntime.StopRuntime()

这里的问题是workflowRuntime.StopRuntime()。当被调用时,它只是阻塞。没有返回值、异常或超时。它只是停止了。我也尝试过使用workFlowInstance.TryUnload(),但都是一样的。它只是有点僵硬

我已经检查了线程id,它与创建和启动工作流的stop方法中的thead相同

有什么想法吗?如果我只是跳过工作流运行时的所有清理,那么服务最终将处于僵尸状态,无法关闭