Tecnología

Inicio

Cómo bloquear un I / O vs. un evento

Cómo bloquear un I / O vs. un evento


operaciones de entrada / salida, por lo general se hace referencia como E / S, están en la base de muchas aplicaciones. Sin E / S, los programadores no podían guardar la información, tales como una carta o un juego guardado. Sin embargo, los programadores también dependen en gran medida de los eventos. Un evento altera los objetos en memoria. Por ejemplo, un clic del ratón es un evento. Un programador puede escribir código que se ejecutará cuando se produzca un evento. Por ejemplo, un programador puede escribir código que hará una sección de texto en negrita cada vez que un usuario hace clic en el botón "negrita" de un procesador de textos. Puede bloquear tanto las operaciones de E / S y los acontecimientos, aunque las técnicas para hacerlo son muy disímiles. Los ejemplos de código debajo están escritas en C # y .NET y se pueden adaptar fácilmente a cualquier idioma.

Instrucciones

El bloqueo de ejecución de E / S

1 Abra su software de programación de elección. Busque la operación de E / S tiene la intención de bloquear.

2 Bloquear una operación de E / S mediante el método "() .close". El cierre de la operación de E / S elimina automáticamente el flujo de E / S:

// Crear un FileStream
Filestream sampleFileStream = new FileStream (nombre del archivo, FileMethod.Create);
// Cerrar el FileStream
sampleFileStream.close ();

3 Bloquear un flujo de E / S de forma automática dentro de un bloque "Uso". Cuando el hilo golpea la llave de cierre, bloquea automáticamente el flujo de E / S de la realización de otras operaciones:

usando (FileStream sampleFS = File.OpenRead ( "test.txt"))
usando (TextReader Sampler = new StreamReader (sampleFS))
{
Console.WriteLine (SampleR.ReadLine ()); // Línea 1
Console.WriteLine (SampleR.ReadLine ()); // Línea 2
}

4 Guarda tu trabajo. Depurarlo para asegurar que funcione como se espera.

El bloqueo de ejecución del evento

5 Abra su software de programación de elección. Busque el evento tiene la intención de bloquear.

6 Prevenir un evento de ejecutar sus métodos suscritas mediante el método ".RemoveAll ()", el cual, al igual que el método de E / S ".Close ()", previene alteraciones adicionales a los elementos en la memoria:

eventDelegate.RemoveAll ();

7 Bloquear un único controlador de eventos se ejecute utilizando la "- =" operador:

myCode.Events - = new SampleEventHandler (muestra);

8 Guarde su trabajo y ejecutarlo en el depurador para asegurar que funcione como se espera.