C# 编写Windows Service 调试(WaitAll for multiple handles on a STA thread is not supported.)

Windows Service开发时调试一般可以直接调试进程,但是要求编译Debug版本的。

另外为了测试的方便可以使用VS自带的UnitTest功能,UnitTest默认是STA线程的

如果多线程需要调用MTA线程,则无法调用 WaitHandle.WaitAll(waithandlers);

报错:WaitAll for multiple handles on a STA thread is not supported.

会提示不支持STA线程的调用,那么就需要在测试工程的配置文件(.testrunconfig文件)

加上

<ExecutionThread apartmentState="MTA" />

如下:

<?xml version="1.0" encoding="UTF-8"?>
<TestRunConfiguration name="Local Test Run" id="a6018de3-504e-40ab-b4ed-cc8b4e4f2c3a" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2006">
    <Description>This is a default test run configuration for a local test run.</Description>
    <TestTypeSpecific />
    <ExecutionThread apartmentState="MTA" />
</TestRunConfiguration>



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值