我正在尝试创建一个多线程jpg循环程序,但是我在使g_thread工作时遇到了问题。
int processUserRequest (UserRequest *uRequest,
char * const* argv, int argc, int optind){
struct RotationData CurData;
CurData.argv=argv;
CurData.argc=argc;
CurData.optind=optind;
CurData.uRequest=uRequest;
gpointer user_data = &CurData;
int transform = FALSE;
int max_files = argc - optind;
int i;
gpointer data=&i;
GThreadPool *pool;
if(!g_thread_supported())
g_thread_init(NULL);
pool = g_thread_pool_new(MultiThreadRotation,user_data, 5, TRUE, NULL);
for(i=0;i
{
g_thread_pool_push(pool, &data,NULL);
}
//g_thread_pool_free (pool, TRUE,TRUE);
//Create a montage file
transform = createMontageFile (uRequest);
return transform;
}
函数MultiThreadRotation假设由g_thread_pool_push调用,但它一次不好。任何人都可以帮忙,我是新手。
另外,我考虑过从g_thread_pool_push输出错误,你会如何输出GError *错误信息?
答案 0 :(得分:1)
首先,在您粘贴的代码中,for语句中存在一个错误。
假设已经修复,这里有一些评论。