Updating a prompt of the main window during modal execution of another event

I have a main window on whose button click event I modally execute a message window. I do a critical process which takes around a minute. Now what i want do is update a prompt to act like a seconds timer either on message window/main window but the problem being is I cannot leave the said process in between until it is finished. The process is executed sequentially without breaking the switch case Can anyone help me in this?. 

I had tried pushing a  event to both message window & main window by a hardware timer, but it doesnt reaches i guess because my critical process is under execution. How can i get a event pushed to main window wherein i would update the prompt and it should be seen changing.

To summarise i have written the following piece of code snippet 

UINT main_window_handler(GX_WINDOW* widget, GX_EVENT* event_ptr)
{

switch (event_ptr->gx_event_type)
{
case GX_EVENT_SHOW:
return gx_window_event_process(widget, event_ptr);


case GX_SIGNAL(ID_START, GX_EVENT_CLICKED):

gx_widget_attach(root,&popup_message);
gx_window_execute((GX_WINDOW*)&popup_message,GX_NULL);

//execution will continue after here on when popup_message is closed
break;

default:
return gx_window_event_process(widget, event_ptr);
}
return 0;
}

UINT popup_message_handler(GX_WINDOW* widget, GX_EVENT* event_ptr)
{
switch (event_ptr->gx_event_type)
{
case GX_EVENT_SHOW:
gx_system_timer_start(&popup_message,1,1,0);
return gx_window_event_process(widget, event_ptr);

case GX_EVENT_TIMER:
if (event_ptr->gx_event_payload.gx_event_timer_id ==1)//Timer_id=1
{
CRITICAL_PROCESS();//takes around 1 minute
gx_widget_detach(&popup_message);
gx_window_close((GX_WINDOW*)&popup_message);
}
break;


default:
return gx_window_event_process(widget, event_ptr);
}
return 0;

}

 Any help would be appreciated. My task is to show a seconds timer on the screen while the process is undergoing if there is any other way to do it even that will help.

Kind regards,

Himanshu M.