Gente, finalmente junté coraje y lo subi a producción con la solución que se me ocurrió. Hasta ahora funciona perfecto!
De todas formas si alguno encuentra algún problema al encare que le di o se le ocurre otra solución estaré muy agradecido. Saludos Luis 2010/5/5 Luis Farzati <[email protected]>: > Colegas listeros, > > Por esas razones de la vida me encuentro teniendo que ejecutar regexes > que vienen de quién sabe dónde. La cuestión es que a veces llegan > regexes que no están muy bien escritas y son de esas que se disparan > exponencialmente al infinito y nunca se resuelven. > > Quisiera saber cómo lo resolverían ustedes... Yo por ahora hice esto: > > Como primer medida, decidi ejecutarlas en un thread aparte y esperar > un ManualResetEvent hasta un lapso (x ejemplo 500ms). Hasta ahi bien, > el flujo puede seguir normalmente. > > El problema es que esa regex sigue ejecutándose en ese thread > llevándome el CPU a picos de a veces hasta el 100%. Segunda medida: si > la espera da timeout, antes de ignorar el thread y seguir de largo le > seteo la prioridad en Lowest. Ahi la cosa mejoró bastante. > > Idealmente quisiera matar ese thread, y Thread.Abort() hace algo > parecido pero por lo visto en blogs y foros, es sinónimo de muerte. > Será tan asi, en este caso en el que no hay recursos dependientes ni > nada por el estilo, es sólo una maldita regex aislada?? > > Por supuesto que ya lo probé y funciona de lujo, pero hablan tantas > pestes de este método que no quiero ponerlo en producción hasta no > tener más feedback... > > Desde ya les estaré muy agradecido!! > Luis > >
