如何在Haskell中杀死一个线程

Jon*_*nke 11 windows multithreading haskell signals ghc

使用Control.Concurrent和forkIO有一些情况会使线程处于阻塞状态(这在具有网络的Windows下尤为常见)所以即使尝试使用killThread,也不会在线程中引发异常.还有其他方法可以强制线程死掉吗?

我尝试使用exitFailure从帮助程序线程终止整个应用程序在这些条件下没有任何影响.

Glorious Glasgow Haskell编译系统,版本6.12.1 HP 2010.1.0.0

编辑:为了清理,我不想终止应用程序,我宁愿杀掉已被阻止很长时间的线程.然而,即使在这里有很多例子,在辅助线程中使用exitWith完成代码,并且这种方案在我所拥有的条件下不起作用.

scl*_*clv 3

为了扩展我上面的评论,你不能中断阻止外国电话。但是,您可以使用非阻塞 IO。对于 Network 包,这意味着recvLen字符串和recvFrom字节串。我假设您也总是指定线程运行时?