コード例 #1
0
        public async Task Save()
        {
            try {
                await WaitHandle.WaitAsync();
                await OnSave();

                HasUnsavedChanges = false;
            } finally {
                WaitHandle.Release();
            }
        }
コード例 #2
0
        public async Task Reload()
        {
            try {
                await WaitHandle.WaitAsync();
                await OnLoad();

                IsLoaded          = true;
                HasUnsavedChanges = false;
            } finally {
                WaitHandle.Release();
            }
        }
コード例 #3
0
        public async Task Load()
        {
            try {
                await WaitHandle.WaitAsync();

                if (IsLoaded)
                {
                    return;
                }
                if (DocumentModelData.IsLinked)
                {
                    await OnLoad();
                }
                else
                {
                    OnCreateNew();
                }
                IsLoaded = true;
            } finally {
                WaitHandle.Release();
            }
        }