コード例 #1
0
 public void Debug(string message, params object[] formatOptions)
 {
     using (_loggers.EnterReadScope())
         Parallel.ForEach(_loggers, (logger) => {
             try {
                 logger.Debug(message, formatOptions);
             } catch {
                 // ignored
             }
         });
 }
コード例 #2
0
ファイル: PageManager.cs プロジェクト: Sphere10/Framework
        public virtual T Get(int index)
        {
            using (_pageHeaders.EnterReadScope()) {
                var firstPage = _pageHeaders[0];
                var lastPage  = _pageHeaders[_pageHeaders.Count - 1];
                if (index < firstPage.StartIndex || index > lastPage.EndIndex)
                {
                    throw new SoftwareException("Index out of bounds. Requested index {0} total elements was {1}", index, lastPage.EndIndex);
                }
                var pageIndex = _pageHeaders.BinarySearch(index, (x, p) => {
                    if (index < p.StartIndex)
                    {
                        return(-1);
                    }
                    if (index > p.EndIndex)
                    {
                        return(+1);
                    }
                    return(0);
                });

                var pageHeader = _pageHeaders[pageIndex];
                var loadedPage = _loadedPages[pageHeader];
                return(loadedPage.GetItem(index));
            }
        }