Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 19792|Respuesta: 0

[Fuente] Uso de SyncRoot en StringDictionary

[Copiar enlace]
Publicado en 23/11/2016 14:26:38 | | | |

La programación orientada a objetos en C# ofrece muchas clases de operaciones fáciles de usar, este StringDictionary es una colección de clases especializadas en almacenar cadenas como claves y valores, el significado de esta clase es: C# sabe que la cadena en el tipo de valor es bastante usada, otros tipos de valor también pueden convertirse en tipos de cadena correspondientes, este es el significado de esta colección, pero aún puedes usar otros objetos de colección para reemplazarla, pero presta atención a un punto, Si es almacenamiento en cadenas, esto puede reducir la pérdida de memoria y el tiempo que tarda en ejecutar el programa


SyncRoot puede usarse para sincronizar el acceso al StringDictionary

Para decirlo claramente, es el concepto de bloqueo, vamos a escribir un programa para probarlo:

El código es el siguiente:



Tenemos dos hilos al mismo tiempo para añadir datos al diccionario StringDictionary,

La diferencia de tiempo de ejecución entre el primer hilo y el segundo es de un segundo, para ampliar la diferencia de tiempo y evitar que la ejecución sea demasiado rápida.

Puedes ver que los hilos han ido a los dos métodos, y al añadir el segundo dato, han estado esperando a que se sumen los primeros datos antes de añadir los segundos, y el tiempo de suma es muy rápido.

A continuación, lo escribiremos de otra manera para que sea más fácil de entender:





Se abren 3 hilos, se suman los datos y los 3 hilos se ejecutan casi al mismo tiempo, pero cuando se suman los datos, cada uno está separado por 10 segundos.

En resumen, cuando se accede a múltiples hilos, podemos usar SyncRoot para garantizar la seguridad del hilo




Anterior:Cómo usar el gatillo WPF para cambiar de botón
Próximo:c# Usar OCR para reconocer imágenes chinas
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com