无法从 NUnit 访问 TPL 任务内的方法
Can not reach method inside TPL Task from NUnit
我有一个 class
有一个长 运行ning Task
field.For 一些原因当我用 NUnit
调试时我无法进入使用调试器在 Task
中 运行 的方法,看看会发生什么。
class WorkerTests {
class Loop {
public Task innerLoop;
public void Run(CancellationToken token) {
this.innerLoop = Task.Run(LoopAsync, token); //wont enter in LoopAsync
}
private async Task LoopAsync() {
while (true) { //i want to reach here
Debug.WriteLine("in loop");
await Task.Delay(1000);
}
}
}
[TestCase]
public async Task TestLoop() {
CancellationTokenSource src = new CancellationTokenSource();
Loop loop = new Loop();
loop.Run(src.Token);
await loop.innerLoop;
}
}
如何使用 LoopAsync
方法中的调试器?
我无法在 Task
中使用调试器输入,因为在我的情况下,该方法在另一个 DLL
(一个 windows 形式中)。这个 DLL
有没有加载调试符号。
我用 Project->Properties->Build->Advanced->Debugging Information set to Full
解决了
我有一个 class
有一个长 运行ning Task
field.For 一些原因当我用 NUnit
调试时我无法进入使用调试器在 Task
中 运行 的方法,看看会发生什么。
class WorkerTests {
class Loop {
public Task innerLoop;
public void Run(CancellationToken token) {
this.innerLoop = Task.Run(LoopAsync, token); //wont enter in LoopAsync
}
private async Task LoopAsync() {
while (true) { //i want to reach here
Debug.WriteLine("in loop");
await Task.Delay(1000);
}
}
}
[TestCase]
public async Task TestLoop() {
CancellationTokenSource src = new CancellationTokenSource();
Loop loop = new Loop();
loop.Run(src.Token);
await loop.innerLoop;
}
}
如何使用 LoopAsync
方法中的调试器?
我无法在 Task
中使用调试器输入,因为在我的情况下,该方法在另一个 DLL
(一个 windows 形式中)。这个 DLL
有没有加载调试符号。
我用 Project->Properties->Build->Advanced->Debugging Information set to Full