Я пытаюсь создать многопоточную программу вращения jpg, но у меня возникают проблемы при работе g_thread.
<code>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);<br>
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 *?