while(true),转义条件和阻塞方法

时间:2013-01-02 22:10:16

标签: while-loop blocking

我遇到了将while()循环与阻塞方法相结合的问题。我使用while(true)+ escape条件以便于查看。

while(true)
{
    //this is my blocking method 
    BlockingMethod();

    //do other things here

    //escape condition to get out of the loop
    if(escape_condition) { break; }

}

我担心的是,一旦线程进入while()循环,它就会停留在阻塞方法中,并且永远不会逃脱转义条件。我怎么处理这个?

另外,我相信我的代码与此相同,我是否正确?

while(!escape_condition)
{
    //this is my blocking method 
    BlockingMethod();

    //do other things here

}

或者线程是否会遇到阻塞方法,一个条件满足入口条件,永远不会离开? (这将需要在循环内实现转义条件。)

1 个答案:

答案 0 :(得分:0)

我认为BlockingMethod是你无法控制的东西?即,您无法更改函数以获取超时值,以便它不会永远阻塞?

如果没有,并且你不想在那里冻结那么你应该考虑将BlockingMethod()调用关闭到一个单独的线程中。然后你可以修改你的while循环以检查线程是否仍然在运行,如果你需要睡眠,如果你的情况需要太长时间,那么就杀死线程然后拯救。