![]() |
1
5
执行以下操作可以获取另一个线程的堆栈跟踪:
从这里可以得到调用堆栈,以及它当前正在执行的函数。 |
![]() |
2
0
为了避免线程之间可能发生的争用,应该在应用程序本身中内置这种东西。 在我看来,线程不应该控制另一个线程的执行(例如suspend/resume),除非启动它。它们应该只是建议另一个线程控件 它本身 (例如,使用互斥锁和事件)。这大大简化了线程管理并减少了争用条件的可能性。 如果您真的想让线程B知道线程A当前正在做什么,那么线程A应该使用一个带有函数名的互斥保护字符串作为示例,将其与线程B(或任何其他线程,如下面的主线程)进行通信。类似于(伪代码)的东西:
此方法可用于 任何 支持线程的语言或环境,而不仅仅是.Net或C#。线程A中的每个函数都有prolog和epilog代码来保存、设置和恢复其他线程中使用的值。 |
![]() |
user107586 · 如何处理等待句柄不会导致无限循环? 6 月前 |
![]() |
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 7 月前 |
![]() |
BenjiFB · C#内存缓存:在一次操作中追加到列表? 7 月前 |
![]() |
András Takács · Python多线程问题 11 月前 |
|
András Takács · Python多线程错误 11 月前 |