Я опоздал на эту вечеринку, поэтому мой первый выбор уже сделан. Но я еще не видел, чтобы кто-нибудь упоминал этот драгоценный камень:
Параллельные расширения .NET Framework
В нем есть такие вещи, как заменить на Parallel.For или foreach на Parallel .ForEach
Параллельный образец:
Как вы думаете, сколько объектов CLR можно создать за одну секунду?
См. Следующий пример:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Threading;
using System.Threading.Tasks;
namespace ObjectInitSpeedTest
{
class Program
{
//Note: don't forget to build it in Release mode.
static void Main()
{
normalSpeedTest();
parallelSpeedTest();
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("Press a key ...");
Console.ReadKey();
}
private static void parallelSpeedTest()
{
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("parallelSpeedTest");
long totalObjectsCreated = 0;
long totalElapsedTime = 0;
var tasks = new List();
var processorCount = Environment.ProcessorCount;
Console.WriteLine("Running on {0} cores", processorCount);
for (var t = 0; t < processorCount; t++)
{
tasks.Add(Task.Factory.StartNew(
() =>
{
const int reps = 1000000000;
var sp = Stopwatch.StartNew();
for (var j = 0; j < reps; ++j)
{
new object();
}
sp.Stop();
Interlocked.Add(ref totalObjectsCreated, reps);
Interlocked.Add(ref totalElapsedTime, sp.ElapsedMilliseconds);
}
));
}
// let's complete all the tasks
Task.WaitAll(tasks.ToArray());
Console.WriteLine("Created {0:N} objects in 1 sec\n", (totalObjectsCreated / (totalElapsedTime / processorCount)) * 1000);
}
private static void normalSpeedTest()
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("normalSpeedTest");
const int reps = 1000000000;
var sp = Stopwatch.StartNew();
sp.Start();
for (var j = 0; j < reps; ++j)
{
new object();
}
sp.Stop();
Console.WriteLine("Created {0:N} objects in 1 sec\n", (reps / sp.ElapsedMilliseconds) * 1000);
}
}
}
Просто строить то же самое, так что ответ на 1 должно быть :) Я использую стандартную аутентификацию стандартных форм ASP.NET, где я использую метод formbauthauthentication.redirectfromloginpage (имя пользователя, createCookiebool) для регистрации пользователя в. Я дал пользователю уникальный GUID (вы можете использовать любой другой идентификатор пользователя), и я храним его в параметре имени пользователя вместе с именем пользователя (для отображения на MasterPage: HTML.Encode (Page.user.identity.name.split («|» .TOBARARRAY ()) [1]))
В каждом контроллере / способе, в котором я должен знать, какой пользователь вошел в систему (через user.identity.name, разделить строку и получить userguid). Также я украсим эти процедуры с атрибутом [авторизации].
-121--1458806-$('selector').css('line-height');
Возвращает высоту линии как десятичное значение в пикселях, с устройством, например. «22.5PX»
Уход за этим решением следует взять с этим решением, так как разные браузеры будут сообщать о разных результатах. Я обнаружил, что вы не можете использовать меры без беседы с высотой строки (например, 2.2) в ваших CSS, поскольку IE6 сообщит о неправильном результате (например, 2PX вместо, например, 36PX). Поэтому я рекомендую использовать подразделение на основе линейных высот с этой мерой.