2010-10-04 9 views
3

j'ai écrit un programme qui utilise OLE et il fonctionnait très bien jusqu'à ce que j'ai ajouté quelques éléments qui étaient importants pour mon programme, après que mon programme ont des problèmes quand commence à travailler avec OLE et soulever cette exception:Threads problème de gestion!

"EOleSysError 
    No more threads can be created in the system" 

est-il possible de demander plus de threads ou de threads utilisés gratuitement ou quelque chose comme eux? Comment peut-on résoudre ce problème? Merci.

+2

Si votre application crée trop de threads, la solution est probablement de ne pas demander plus de threads. Je pense qu'il devrait être corrigé afin qu'il ne crée pas autant de threads. –

+0

question importante est que je ne crée pas ces fils par moi-même! donc je ne peux pas les gérer, ils sont créés par des composants ceux qui utilisent im – Armin

+0

Quels composants? Comment les utilisez-vous? –

Répondre

8

Je vous suggère fortement, soit d'arrêter d'utiliser les composants si vous ne pouvez pas les réparer (dites à l'auteur de les réparer), soit vous commencez à les utiliser correctement si la faute est de votre côté. Atteindre la limite de thread pour un processus est un problème sérieux et ne devrait jamais arriver. Il n'y a pas de remède pour cela, mais en corrigeant le code qui le cause.

Lire ceci: Pushing the Limits of Windows: Processes and Threads

+0

Je ne peux pas le réparer, car ce n'est pas ouvert. Je suis sûr que la faute n'est pas de mon côté (avant d'utiliser ce composant, tout allait bien et d'ailleurs je n'ai pas codé de thread ou de threading). – Armin

+0

c'était un article très utile et intéressant, merci – Armin

+0

Je vous suggère fortement de chercher une alternative alors. Et un ouvert. Je ne vais pas suggérer de trouver des solutions de rechange obscures parce que, à mon avis, dans de tels cas, il n'y en a pas qui seraient acceptables. Au moins probablement pour 99% des cas. Mais je ressens ta douleur et je sais dans quelle situation tu es en ce moment. – Runner

2

Peut-être que vous utilisez ces composants d'une mauvaise façon? Donc, ces composants gardent les connexions et les threads ouverts au lieu de les fermer?

Quel type de composants utilisez-vous? Et comment, avez-vous un exemple de code?