/// <summary>/// Appends the HTML text./// </summary>/// <param name="htmlProvider">The HTML provider.</param>public void AppendHtmlText( IHtmlProvider htmlProvider )/// <summary>/// Adds the specified item./// </summary>/// <param name="item">The item.</param> public void Add( string item )/// <summary>/// Determines the size of the page buffer./// </summary>/// <param name="initialPageBufferSize">Initial size of the page buffer.</param> /// <returns></returns> public int DeterminePageBufferSize( int initialPageBufferSize )[from Introduction to GhostDoc]
/// <summary>/// Appends the HTML text./// </summary>/// <param name="htmlProvider">The HTML provider.</param>public void AppendHtmlText( IHtmlProvider htmlProvider )
/// <summary>/// Adds the specified item./// </summary>/// <param name="item">The item.</param> public void Add( string item )
/// <summary>/// Determines the size of the page buffer./// </summary>/// <param name="initialPageBufferSize">Initial size of the page buffer.</param> /// <returns></returns> public int DeterminePageBufferSize( int initialPageBufferSize )[from Introduction to GhostDoc]
var FreeProcessNum = GetFreeProcessNum(ref FreeProcessId);
var FreeProcessesCount = ProcessesList.CountFree();var FreeProcessId = ProcessesList.GetNextFreeId(); // we don't really need/want the ID but we'll fix that later
var FreeProcessNum = 0;foreach (var keyValuePair in ProcessesList){ if (keyValuePair.Value.m_Busy == false) { FreeProcessId = keyValuePair.Key; ++FreeProcessNum; if (FreeProcessNum > 1) break; } } return FreeProcessNum;
public void ProcessFrame(FrameProp nextFrame) //was HandleWithFrame { rwl.EnterWriteLock(); try { if (nextFrame != null) FramesQueue.Enqueue(nextFrame); TryDispatchTopFrame(); } finally { rwl.ExitWriteLock(); } }
internal static class FramesQueueExtnesions { public static void Enqueue(this Dictionary<Guid, WaitingFrame> queue, FrameProp Frame) { if (queue.ContainsKey(Frame.m_SessionId)) queue[Frame.m_SessionId].m_Frame = Frame; else queue.Add(Frame.m_SessionId, new WaitingFrame(Frame)); queue.UpdatePriorities(); } public static void ResetSlot(this Dictionary<Guid, WaitingFrame> queue,Guid slotId) { queue[slotId].m_NumProcess += 1; queue[slotId].m_Priority = 0; queue[slotId].m_Frame = null; } public static void UpdatePriorities(this Dictionary<Guid, WaitingFrame> queue) { foreach (var Item in queue) { if (Item.Value.m_Frame != null) Item.Value.m_Priority += 1; } } public static FrameProp FindTopPrioritized(this Dictionary<Guid,WaitingFrame> queue) { var maxPriority= queue.Max(item => item.Value.m_Priority); return queue.First(item => item.Value.m_Priority == maxPriority).Value.m_Frame; } }
Subscribe to RSS headline updates from: