예제 #1
0
    internal UIDispatcher(UIService service, Thread parentThread) : base(service)
    {
        ThrowIfNull(parentThread);
        _parentThread = parentThread;

        _windows     = new Dictionary <HWND, UIWindow>();
        _windowsLock = new ValueReaderWriterLock();
    }
예제 #2
0
        public MemoryBudgetInfo()
        {
            DxgiQueryLocalVideoMemoryInfo    = new DXGI_QUERY_VIDEO_MEMORY_INFO();
            DxgiQueryNonLocalVideoMemoryInfo = new DXGI_QUERY_VIDEO_MEMORY_INFO();
            RWLock = new ValueReaderWriterLock();
            TotalOperationCountAtLastUpdate = 0;

            for (var index = 0; index < MaxMemoryManagerKinds; index++)
            {
                _totalFreeMemoryRegionByteLengthAtLastUpdate[index] = 0;
                _totalByteLengthAtLastUpdate[index] = 0;
            }
        }
예제 #3
0
    /// <summary>Initializes a new instance of the <see cref="DisposableWriterLock" /> struct.</summary>
    /// <param name="rwLock">The reader-writer lock on which a write lock should be acquired.</param>
    /// <param name="isExternallySynchronized"><c>false</c> if a write lock on <paramref name="rwLock" /> should be acquired; otherwise, <c>true</c>.</param>
    public DisposableWriterLock(ValueReaderWriterLock rwLock, bool isExternallySynchronized)
    {
        Assert(!rwLock.IsNull);

        if (!isExternallySynchronized)
        {
            rwLock.AcquireWriteLock();
            _rwLock = rwLock;
        }
        else
        {
            _rwLock = default;
        }
    }
예제 #4
0
    private UIService() : base(name: null)
    {
        _classAtom = CreateClassAtom();

        _dispatchers     = new Dictionary <Thread, UIDispatcher>();
        _dispatchersLock = new ValueReaderWriterLock();