gpt4 book ai didi

c# - 后台线程的 MSTest 失败

转载 作者:太空狗 更新时间:2023-10-29 23:51:47 25 4
gpt4 key购买 nike

我有一个使用多线程的集成测试。我希望任何线程都能够通过测试(并拆除其余线程)。但是,后台线程上的异常会导致 MSTest 失败 - 您只会得到一个错误:

The agent process was stopped while the test was running

我想我可以在后台线程上捕获任何异常,并唤醒主线程以使测试失败,但是有没有更简单/更优雅的方法?

最佳答案

如果您绝对需要使用不同的线程(而不是 ThreadPool 线程),您可以使用带有 TaskCreationOptions.LongRunning 选项的 Task将为该任务创建一个专用线程(而不是来自 ThreadPool 的线程)。然后您可以检查该任务的 IsFaultedException 属性。这是一个简单的代码:

var task = new Task(() => { throw new InvalidOperationException(); }, TaskCreationOptions.LongRunning);
task.Start();
try { task.Wait(); }
catch { }

if (task.IsFaulted)
{
// do something about the exception
Console.WriteLine(task.Exception);
}

关于c# - 后台线程的 MSTest 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15095794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com