24 de Septiembre de 2014

Archivo para Agosto de 2011 en Ctrl+Alt+Supr, blog de Ollydbg

No hace mucho Btc me comentó algunos problemas que tenía con su B-File Renamer, en concreto con la gestión de hilos que hace su programa para el renombrado masivo de los archivos. Por este motivo me he animado a escribir este pequeño tutorial para mostrar un pequeño ejemplo práctico de como implementar una 'solución' que emplea el uso de hilos (threading en inglés).

Una de las principales ventajas de las aplicaciones que emplean hilos es que pueden hacer 'más de una cosa' al mismo tiempo. En la realidad prácticamente todas las aplicaciones ya usan internamente más de un hilo, lo que ocurre es que esto se realiza de forma transparente para nosotros.

En nuestro caso queremos que un determinado método, función, clase o lo que sea se ejecute en otro hilo. Normalmente estos métodos, funciones, clases o lo que sea que queremos ejecutar dentro de un hilo consumen bastante tiempo.

Pongamos el caso del B-File Renamer. Renombrar todos los archivos de una determinada carpeta puede llevar 1 minuto o más, dependiendo lógicamente de la cantidad de archivos a renombrar.

Lo que no debería hacer la aplicación (B-File Renamer en este caso) es 'quedarse colgada' mientras renombra 2000 ficheros.

Ya hace algún tiempo vimos cómo trabajar con bases de datos (Tutorial 22 y Tutorial 23) Hoy veremos como usar una base de datos, SQL Server en este caso en una aplicación Web.

En esta base de datos que está alojada en un servidor Web enviaremos una serie de "puntuaciones" mediante una aplicación de Windows Forms que posteriormente se visualizarán.

Lo primero que deberemos hacer es crear tanto la base de datos como la tabla para las "puntuaciones".

Una forma rápida de hacer esto es usando el Microsoft SQL Server Management Studio del que ya hablamos en los tutoriales anteriores.

Para este tutorial se ha creado la base de datos: testASPdatabase
En dicha base de datos se ha creado una tabla llamada: HIGHSCORES

Sería algo como esto:

La tabla HIGHSCORES tiene únicamente tres campos: