Извините, не может быть сделан с ShowGridLines - необходимо разработать содержавшие элементы.
самый веский довод:
в документах MSDN говорится, "Что только пунктирные линии доступны, потому что это свойство предназначается как средство проектирования для отладки проблем расположения и не предназначается для использования в производственном качественном коде. Если Вы хотите строки в Сетке, разрабатываете элементы в Сетке, чтобы иметь границы".
приложение B - Исходный код WPF:
Уведомление Кисти. Синий и Кисти. Желтый трудно кодированный в этом изолированном внутреннем классе, который Система. Windows. Средства управления. Использование сетки для проведения линий.
От Grid.cs
/// <summary>
/// Helper to render grid lines.
/// </summary>
internal class GridLinesRenderer : DrawingVisual
{
/// <summary>
/// Static initialization
/// </summary>
static GridLinesRenderer()
{
s_oddDashPen = new Pen(Brushes.Blue, c_penWidth);
DoubleCollection oddDashArray = new DoubleCollection();
oddDashArray.Add(c_dashLength);
oddDashArray.Add(c_dashLength);
s_oddDashPen.DashStyle = new DashStyle(oddDashArray, 0);
s_oddDashPen.DashCap = PenLineCap.Flat;
s_oddDashPen.Freeze();
s_evenDashPen = new Pen(Brushes.Yellow, c_penWidth);
DoubleCollection evenDashArray = new DoubleCollection();
evenDashArray.Add(c_dashLength);
evenDashArray.Add(c_dashLength);
s_evenDashPen.DashStyle = new DashStyle(evenDashArray, c_dashLength);
s_evenDashPen.DashCap = PenLineCap.Flat;
s_evenDashPen.Freeze();
}
FIFO signaling leads to lock convoys. On newer versions of the Win32 API the convoy issue is addressed by macking mutexes and other synchrnonization primitives explicitly unfair (ie. no FIFO).
If more than one thread is waiting on a mutex, a waiting thread is selected. Do not assume a first-in, first-out (FIFO) order. External events such as kernel-mode APCs can change the wait заказ.
Да, если вам нужна очередь FIFO, вам потребуется реализовать собственный механизм очередей.
, если вы хотите, чтобы разблокировка происходила в порядке FIFO, вы можете использовать настраиваемую блокировку. В ACE существует блокировка FIFO; он называется ACE_Token, и, поскольку это открытый исходный код, возможно, вы можете использовать его в качестве эталонной реализации. Думаю, накладные расходы на его использование будут минимальными.
Способ Windows выполнять собственное планирование - использовать волокна. Основной поток будет ждать мьютекса, после его возврата вы явно вызываете SwitchToFiber из потокобезопасного QUEUE (FIFO).