在 .Net 中克隆线程
是否可以在 .Net 中复制线程?有点像 fork() 但只是一个线程而不是整个进程?
我有一个递归算法,出于测试目的,我不想评估代码可以采用的几个不同分支。最简单的方法是在代码中的决策点克隆线程,并让每个线程在不同的分支中继续。
Is it possible to make a copy of a thread in .Net? Kind of like a fork() but on just a thread instead of the whole process?
I have a recursive algorithm, and for testing purposes I wan't to evaluate several different branches that the code can take. The easiest way would be to clone the thread at the decision point in the code and let each thread continue in a different branch.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
任何递归算法都可以在堆栈对象的帮助下实现为迭代算法(如 System.Collections.Stack)。那么你的问题就变成了克隆 Stack 对象(微不足道),而不是克隆线程及其堆栈状态(困难)。
Any recursive algorithm can be implemented as an iterative algorithm with the help of a stack object (as in System.Collections.Stack). Then your question becomes one of cloning the Stack object (trivial), as opposed to cloning the thread and it's stack state (difficult).
我的研究没有找到任何答案,而这里缺乏回应让我得出这样的结论:这是不可能完成的。
所以不,在 .Net 中没有复制/分叉线程的方法。
My research didn't turn up any answers, and the lack of responses here leads me to the conclusion that it can't be done.
So no, there is no method to copy/fork a thread in .Net.