Articles of c #

Enlazar la construcción floja y segura de un singleton en C ++

¿Hay alguna manera de implementar un objeto singleton en C ++ que sea: Perezosamente construido de una manera segura para hilos (dos hilos podrían ser al mismo tiempo el primer usuario del singleton, aún así solo debería construirse una vez). No se basa en variables estáticas que se construyan de antemano (por lo que el […]

¿Hay un equivalente de MessageBox en WPF?

¿Hay un cuadro de mensaje estándar en WPF, como WinForms ‘ System.Windows.Forms.MessageBox.Show() , o debería usar el cuadro de mensaje de WinForms?

Async / Await vs Threads

En .Net 4.5 Microsoft ha agregado la nueva característica Async/Await para simplificar la encoding asincrónica. Sin embargo, me pregunto ¿Puede Async/Await reemplazar completamente la forma antigua de usar Threads ? ¿Es Async/Await capaz de hacer lo que un Thread puede hacer de manera asincrónica? Can Async/Await solo se puede usar con algunos métodos como WebClient.DownloadStringAsync […]

Diferencia entre std :: result_of y decltype

Tengo algunos problemas para entender la necesidad de std::result_of en C ++ 0x. Si entendí correctamente, result_of se usa para obtener el tipo resultante de invocación de un objeto de función con ciertos tipos de parámetros. Por ejemplo: template typename std::result_of::type invoke(F f, Arg a) { return f(a); } Realmente no veo la diferencia con […]

¿Cuál es la diferencia entre System.ValueTuple y System.Tuple?

Descompilé algunas bibliotecas de C # 7 y vi ValueTuple generics ValueTuple . ¿Qué son ValueTuples y por qué no Tuple ? https://docs.microsoft.com/en-gb/dotnet/api/system.tuple https://docs.microsoft.com/en-gb/dotnet/api/system.valuetuple

¿Qué significa la instrucción “lock” en el ensamble x86?

Vi un ensamblaje x86 en la fuente de Qt: q_atomic_increment: movl 4(%esp), %ecx lock incl (%ecx) mov $0,%eax setne %al ret .align 4,0×90 .type q_atomic_increment,@function .size q_atomic_increment,.-q_atomic_increment De Google, sabía lock instrucción de lock hará que la CPU bloquee el bus, pero no sé cuándo la CPU libera el bus. Sobre todo el código anterior, […]

Anexar valores a la cadena de consulta

Tengo un conjunto de URL similar a las siguientes en una lista http://somesite.com/backup/lol.php?id=1&server=4&location=us http://somesite.com/news.php?article=1&lang=en Logré obtener las cadenas de consulta utilizando el siguiente código: myurl = longurl.Split(‘?’); NameValueCollection qs = HttpUtility.ParseQueryString(myurl [1]); foreach (string lol in qs) { // results will return } Pero solo devuelve los parámetros como id , servidor , ubicación , […]

¿Debería uno realmente establecer punteros a `NULL` después de liberarlos?

Parece que hay dos argumentos por los que uno debe establecer un puntero a NULL después de liberarlos. Evite chocar cuando doble punteros de liberación. Corto: Llamar free() por segunda vez, por accidente, no se cuelga cuando está establecido en NULL . Casi siempre esto enmascara una falla lógica porque no hay razón para llamar […]

¿Por qué CUDA cubrió la memoria tan rápido?

Observo aceleraciones sustanciales en la transferencia de datos cuando uso la memoria fija para las transferencias de datos CUDA. En Linux, la llamada al sistema subyacente para lograr esto es mlock. Desde la página man de mlock, indica que bloquear la página evita que se cancele: mlock () bloquea las páginas en el rango de […]

¿Cuál es el rol de GetHashCode en el IEqualityComparer en .NET?

Estoy tratando de comprender el papel del método GetHashCode de la interfaz IEqualityComparer. El siguiente ejemplo se toma de MSDN: using System; using System.Collections.Generic; class Example { static void Main() { try { BoxEqualityComparer boxEqC = new BoxEqualityComparer(); Dictionary boxes = new Dictionary(boxEqC); Box redBox = new Box(4, 3, 4); Box blueBox = new Box(4, […]