作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个不寻常的场景,我需要能够暂停并稍后恢复线程的执行状态,可能会在不同的线程上恢复它。
有两个函数完全符合我的要求,Thread.GetCompressedStack
和 Thread.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/
命令 svn status 返回如下内容: ? SomeClient\BUTCHERED.docx M SomeClient\Development notes.txt ?
我是一名优秀的程序员,十分优秀!