关于Photon图形界面中,若遇到长任务时,会使界面对鼠标键盘事件无法响应,请问如何处理比较合理?

在有关Photon图形界面的编程中,若遇到长任务时,会使界面对鼠标键盘事件无法响应,请问如何处理比较合理?

我感觉Photon界面编程中,只是通过事件来调用那么callback函数。若遇到长任务时,该任务长时间占用系统资源,致使其它的callback函数无法被响应。请问这种情况如何处理呀?photon中,可不可以创建进程,让每一个进程完成各自的任务呀?

请大家帮忙给予解答,非常感谢哦。

方法一:PtBkgdHandlerProcess()

{
int done = 0;
while ( !done ) 
{

    /* Handle all pending Photon events */
    PtBkgdHandlerProcess( );
    /* Do some work, setting done if finished */
    }
}

方法二:Create a thread:

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

void*  function( void*  arg )
{
   printf( "This is thread %d\n", pthread_self() );
   return( 0 );
}

int main( void )
{
   pthread_attr_t attr;

   pthread_attr_init( &attr );
   pthread_attr_setdetachstate(
      &attr, PTHREAD_CREATE_DETACHED );
   pthread_create( NULL, &attr, &function, NULL );

   /* Allow threads to run for 60 seconds. */
   sleep( 60 );
   return EXIT_SUCCESS;
}

你好,谢谢你的回复。
我想问一下,在photon界面编程中,主函数main()是不允许改动的。那请问你的第二种方面在主函数中创建线程,那不是改动了主函数中了吗?

PhAB对每个工程可以设置一个setup函数的,该函数具有main函数的所有命令行参数,还可以指定其运行的先后。可以找一下phab的菜单。

不过你的情况线程应该是在callback函数里创建的吧。