.NET: el bloqueo pesimista en línea, el bloqueo optimista en línea, fuera de línea de bloqueo pesimista, el bloqueo optimista ejemplo de código en línea

bloqueo pesimista

Definición: Cuando modifico los datos, no permitir que otros se modifican los datos.

Intención: Concurrente se producen con facilidad (pesimistas consideran a menudo una cosa malo va a pasar a ellos).

Escena: proceso de puntuaciones de rendimiento debe modificar las mismas filas como la tabla de resultados de la evaluación después de cada puntuación de evaluación, y con frecuencia las puntuaciones en el mismo período de tiempo, proceso de puntuación es adecuado para uso bloqueo pesimista.

El bloqueo optimista

Definición: cualquier persona puede modificar los datos, el momento de la presentación y la base de datos de comparación, si los datos han cambiado mientras tanto, hay dos ideas del tratamiento: 1, insuficiencia; 2, después de la fusión presentada.

Intención: La concurrencia no es probable que ocurra (a menudo optimistas creen que una cosa mala no le suceda a ellos).

Escena: más personal administrador puede modificar el contrato de trabajo, ya que rara vez se produce tal situación concurrente, por lo que aquí será mucho mejor uso de bloqueo optimista.

desconectado

Definición: también denominadas operaciones largas; un proceso de negocio necesita muchas veces y comunicación del servidor.

requisitos de negocio: Intención.

Escena: Modificar el proceso de aprobación continuará el proceso de solicitudes múltiples, múltiples solicitudes deben ser tratados como un largo transacción.

En línea

Definición: También llamado transacciones cortas, y sólo la comunicación del servidor de proceso de un negocio una vez.

Intención: Requisitos de negocio

Escena: La mayoría de las empresas caen en este escenario.

bloqueo optimista en línea

[TestMethod] 
        [la ExpectedException ( typeof (DbUpdateConcurrencyException))]
         pública  sin efecto el bloqueo optimista Test () 
        { 
            el uso de ( var contexto1 = nuevos nuevos TestEntities ()) 
            { 
                Context1.Users.First () Nombre. = " Li NIO 1. " ; 

                El uso de ( var = Contexto2 nuevos nuevos TestEntities ()) 
                { 
                    context2.Users.First () Nombre. = " Li NIO 2 " ;  
                    context2.SaveChanges ();
                }

                context1.SaveChanges (); 
            } 
        }

Bloqueo pesimista Desconectado

La dificultad consiste en resolver en línea pesimista adquisición de bloqueo y liberación de tiempo, la idea común es determinar si el bloqueo de forma abierta, si no con llave, adquieren la cerradura, liberar el bloqueo cuando se forma cerrada, liberar todos los bloqueos cuando caduque la sesión. interfaz de gestión de bloqueo de la siguiente manera:

pública  interfaz de la que desconectar una interfaz de gestión de bloqueo pesimista 
    { 
        BOOL si el bloqueo (identificador GUID documento); 

        nula adquirir el bloqueo (identificador de usuario Guid, identificador de documento Guid); 

        sin efecto de bloqueo de liberación (identificador de usuario Guid, identificador de documento Guid); 

        sin efecto de bloqueo de liberación (Guid identificación de usuario); 
    }

 

Supongo que te gusta

Origin www.cnblogs.com/bangguo/p/12586161.html
Recomendado
Clasificación