gpt4 book ai didi

c# - 如何保存并在以后恢复线程执行状态?

转载 作者:行者123 更新时间:2023-11-30 12:25:00 26 4
gpt4 key购买 nike

我有一个不寻常的场景,我需要能够暂停并稍后恢复线程的执行状态,可能会在不同的线程上恢复它。

有两个函数完全符合我的要求,Thread.GetCompressedStackThread.SetCompressedStack,但两者都已弃用并且没有提供替代方法。 MSDN 引用了 CompressedStack.Capture,但它不允许恢复捕获的堆栈。

我有什么办法可以做到这一点吗?

最佳答案

CompressedStack 不是 CLR 执行堆栈。不做你想做的事。

基本上,你不能按字面意思去做。

不过,感谢 await,如果您愿意让整个调用链返回 Task,您可以这样做。您可以使用 PauseToken 暂停任何任务.您的代码将如下所示:

async Task MyCode(PauseToken pt) {
while (true) {
await DoSomething();
await pt.WaitWhilePausedAsync();
}
}

类似的东西。

关于c# - 如何保存并在以后恢复线程执行状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32408866/

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