2010-04-22 6 views

Respuesta

66

El resto de la clase Parallel proporciona algunas otras grandes cosas como Parallel.Invoke(...) y Parallel.ForEach(...).

Además, si hace algo con Linq, puede usar el ParallelEnumerable.AsParallel() Method para convertir sus consultas de Linq para que se ejecuten en paralelo.

Todo está basado en el Task Parallel Library que proporciona un gran conjunto de API para trabajar con tareas de una manera abstracta que escala los recursos que tiene su máquina sin tener que pensar demasiado acerca de cuántos subprocesos está creando exactamente.

+2

¡Impresionante! ¡exactamente lo que quise decir! ¡Seguramente usaré eso! – Faruz

9

La forma en que C# implementa los campos event es nueva. Ya no hace internamente un muy malo lock (this) por defecto. Sin embargo, los eventos aún están protegidos por subprocesos porque ahora se usa un mecanismo Interlocked.CompareExchange(...).

Esto conlleva algunos cambios que podrían estarse rompiendo en algunos casos extremos. Más información:

12

parámetros opcionales es uno de mis favoritos. El tipo dynamic parece ser prometedor

+1

Bueno, tampoco lo sabía. Podría guardar muchas codificaciones inútiles ... – Faruz

+0

Pertinente SO Pregunta quizás podría agregar a esta respuesta: http://stackoverflow.com/questions/2690623/what-is-the-dynamic-type-in-c-4-0 -used-for – ParmesanCodice

+3

Solo tenga cuidado con los parámetros opcionales en métodos públicos/virtuales: http://www.stum.de/2010/04/19/how-optional-parameters-work-why-they-can-be-dangerous -and-why-they-work-in-net-23-as-well/- Sin embargo, están seguros en clases internas/privadas. –

1

En aras de la legibilidad, agregaré mi descubrimiento tal como está escrito en la pregunta.

Cuando se utiliza AJAX, puede especificar la propiedad EnableCdn para la scriptmanager para cargar los valores de CDN (como Microsoft CDN)

0

Creo que también son mejoras a WCF que eliminan molestias anteriores como no ser capaz de configurar WebGet/WebInvoke de forma diferente para cada punto final en .Net 3.5. Creo que es completamente configurable en 4.0.

13

Me encanta el hecho de que el archivo web.config es pequeño y significativo, en lugar de largo y lleno de declaraciones desconocidos ...

+2

Además, ahora muestra un ejemplo de transformaciones XML para depurar/liberar. –

+0

¡Sí! Realmente me gusta mantener las cosas lo más simple posible –

18

string.Join() ahora tiene una firma que lleva IEnumerable<T> en lugar de sólo string[] - una pequeña mejora que le permite arrancar su código .Select() y .ToArray().

4

Los contratos de código se ven muy prometedores tanto desde el punto de vista de la creación de código más correcto, sino también desde el punto de producir documentación más completa. Lamentablemente, todavía no están todos en VS2010: tiene que instalar un complemento e incluso entonces no está completo ni terminado y parece que todavía está en proceso.

+0

Lo bueno. algunos son mejores que ninguno –

2

También me gustaría hacer referencia a la documentación original (MSDN en este caso) para una lista completa de mejoras y adiciones:

http://msdn.microsoft.com/en-us/library/ms171868.aspx

A partir de ese artículo, puede encontrar fácilmente las cosas que pueden mejorar la base de códigos existente.

21

La clase DirectoryInfo además de los métodos GetDirectories y GetFiles ahora tiene sus versiones perezosos y EnumerateDirectoriesEnumerateFiles, que nos evitar tener grandes arrays para almacenar todos los objetos a la vez.

3

La caché de ASP.net es ahora en su propia asamblea!

System.runtime.caching.dll

que significa que puede utilizar en otras aplicaciones como WPF y Windows Forms sin tener que tirar de todo el conjunto system.web

sólo desearía que tendrían reforzó CacheItem para incluir información incorporada sobre el elemento de caché, como cuándo se agregó ... cuándo caducará, etc.

+0

En realidad, la memoria caché de ASP.NET aún se encuentra en el ensamblado System.Web tal como estaba antes. No estoy muy seguro de por qué. (Por cierto, el nuevo caché parece prometedor.) – Venemo

+0

Estoy seguro de que es compatible con versiones anteriores. Por lo que he escuchado, system.web.caching.cache no se mejorará en versiones futuras. – sqlray

4

Puede usar archivos mapeados en memoria (de la misma manera que las funciones nativas de Windows acceden a la memoria) archivos mapeados) para editar archivos muy grandes y crear memoria compartida para la comunicación entre procesos. Para una explicación detallada, véase: http://msdn.microsoft.com/en-us/library/dd997372.aspx

5

System.Numerics.BigInteger - representa un entero con signo arbitrariamente grande.

System.Numerics.Complex - Representa un número complejo.

+1

muy interesante [de MSDN] => El tipo BigInteger es un tipo inmutable que representa un entero arbitrariamente grande cuyo valor en teoría no tiene límites superiores o inferiores. Como BigInteger es inmutable y no tiene límites superiores o inferiores, se puede generar una OutOfMemoryException para cualquier operación que haga que un valor de BigInteger crezca demasiado. –

Cuestiones relacionadas