如何处理不返回的函数

Rob*_*ert 1 c#

我有一个名为ApiCalls()的函数,它包含在一个锁定器中,因为我使用的api不是多线程安全的.偶尔api调用无法返回,我想不出办法处理这种情况.我正在考虑在锁定对象上创建一个计时器,但似乎锁定器没有这样的东西.

Ste*_*dit 7

这真的没有好的答案.一个糟糕但可能可行的答案是有一个监视程序线程在超时后中止调用线程.换句话说,在获得锁定之后但在调用API之前,你会命令看门狗杀死你.当你从电话回来时(如果你回来),你会取消看门狗.

同样,这不是一个很好的解决方案,因为Abort非常混乱.