查看单个帖子
旧 2009-05-07, 12:48 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】regenabor

regenabort
regenabort
is there a way to know when the regenabort is finished for all the objects that needs to be rendered? because in the "viewr" that we are making, we have options to zoom/pan and a few others, and say one zoom is in process right now but user clicks again on zoom or pan, the zoom that was in process needs to be "killed" (regenabort) and new one with whichever function needs to be started again. so far it partly works, after calling the regenabort to kill old process, i call the new one, and get about 20% of the drawing to display . but if i wait till the process is totally over before clicking on zoom or pan again, everything loads no problem
any ideas? could it be because the regenabort takes longer to call/run through than it takes to call it and call the next function right after?
sample code for the start of dll
if(waitforsingleobject(mutexdllaccess, 0) == wait_timeout)
{
abortprocess = true;
return true;
}
if(drawinginprocess)
{
abortprocess = true;
pdevice->update(null); //this is so the regenabort gets called
//return true; //not returning to the main software, calling a second function now so the return true is commented out
}
abortprocess = false;
drawinginprocess = true;
return false;
that kills the process but doesn't let me "repaint" the whole drawing after unless i let the whole process run through, then start another process.
thanks in advance to let me know of a way to regenabort(or other function killing process) the process to kill the process efficiently and then let me call another function right after.
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)