Msdn 文档对 WriteVerbose 方法说:
“只能从 BeginProcessing、ProcessRecord 和 EndProcessing 方法的实现中调用此方法,并且只能从该线程调用。如果从这些实现外部或另一个线程调用此方法,则会引发 InvalidOperationException 异常。”
但是在我的测试代码中,我能够在三个标准方法之外调用该方法。但是当从不同的线程调用该方法时,我得到了一个异常。
我相信这里的大多数人在实现自定义 cmdlet 时都需要多线程支持。
我正在使用后台工作者来完成简单的多线程。在继续之前,我在 ProcessRecord 函数中等待 doWork 事件完成。现在我想使用来自 doWork 的 writeverbose 向用户报告进度,但由于它是一个不同的线程,我不能这样做。
我已经尝试使用带有 AutoResetEvent 的并发队列来实现这一点,但是有没有更好的方法以更简单的方式解决这个问题?
我们正在为c ++中已有的代码开发单元测试.在最近的TechEd中听说过微软伪造的单元测试隔离框架.但TechEd视频并未显示它是否支持c ++.在msdn上也没有这样说过.但是msdn上的所有例子都是针对c#和VB的.
有谁知道它是否受支持.如果不是,那么对于现有的c ++代码,您不建议采用哪种框架,而这些代码并非在单元测试中开发.