Je tente de nettoyer des objets mémoire spécifiques créés par un thread spécifique (donc uniquement accessible à ce thread). La seule façon pour moi d'y parvenir est de passer à ce thread particulier lors de la libération de ce bloc de mémoire.Changement de threads pour le nettoyage de l'application MFC
Voilà comment j'alloué le contexte de mémoire spécifique: http://imagebin.ca/img/S6mwZBFu.jpg
Voici ce que je tentais de le faire:
alt text http://imagebin.ca/img/DeTe9Z6h.jpg
J'ai ajouté au départ la création de contexte de la mémoire et la destruction d'une manière comme suit:
int Thread2::main()
{
CudaMemoryContext *theCudaObj = new CudaMemoryContext();
while(!TerminateStatus())
{
...
}
delete theCudaObj;
return 0;
}
Cependant, cette Cela ne fonctionne pas très bien, c'est-à-dire que le programme se bloque lorsque je nettoie le "supprimer theCudaObj;" ligne. Je me demande si je peux changer les threads actifs lors du nettoyage, ou allouer le contexte CUDA pour être accessible par les deux threads afin que je puisse nettoyer et y accéder facilement à travers les deux threads. Merci d'avance pour vos suggestions.
Il me semble que le problème de l'accident est sans rapport avec le filetage. –
Je ne sais pas si cela peut être évité. Il semble que le problème est de pouvoir supprimer le contexte de mémoire cuda dans un contexte de mémoire approprié. – stanigator