我正在制作一个必须响应应用程序请求的 dll。应用程序的要求之一是调用不应花费很长时间才能完成。
比如说,我有一个函数 foo(),它由主机应用程序调用:
int foo(arg){
// some code i need to execute, say,
LengthyRoutine();
return 0;
}
可以说, foo 必须执行肯定需要很长时间的任务(或调用函数)。该应用程序允许我设置一个等待变量;如果 foo 返回时此变量非零,它会一次又一次地调用 foo(在每次调用之前重置等待变量),直到等待返回 0。
最好的方法是什么?
我去吗:
int foo(arg){
if (inRoutine == TRUE) {
wait = 1;
return 0;
} else {
if (doRoutine == TRUE) {
LengthyRoutine();
return 0;
}
}
return 0;
}
这并不能真正解决 LongyRoutine 需要很长时间才能完成的问题。我是否应该根据它是否完成任务来生成某种类型的线程来更新 inRoutine?
谢谢..