AcManager.Controls.CustomShowroom.CustomShowroomWrapper.StartFancyAsync C# (CSharp) 메소드

StartFancyAsync() 공개 정적인 메소드

public static StartFancyAsync ( string kn5, string skinId = null, string showroomKn5 = null ) : System.Threading.Tasks.Task
kn5 string
skinId string
showroomKn5 string
리턴 System.Threading.Tasks.Task
        public static async Task StartFancyAsync(string kn5, string skinId = null, string showroomKn5 = null) {
            if (_starting) return;
            _starting = true;

            _last?.Stop();
            _last = null;

            Kn5ObjectRenderer renderer = null;

            try {
                FancyShowroomWrapper wrapper;
                using (var waiting = new WaitingDialog()) {
                    waiting.Report(ControlsStrings.CustomShowroom_Loading);

                    renderer = await Task.Run(() => new Kn5ObjectRenderer(kn5, showroomKn5));
                    renderer.UseFxaa = SettingsHolder.CustomShowroom.LiteUseFxaa;

                    wrapper = new FancyShowroomWrapper(renderer);
                    if (skinId != null) {
                        renderer.SelectSkin(skinId);
                    }

                    _last = wrapper;
                    SetProperties(wrapper, renderer);

                    wrapper.Form.Icon = AppIconService.GetAppIcon();
                }

                wrapper.Run(() => _starting = false);
            } catch (Exception e) {
                NonfatalError.Notify(ControlsStrings.CustomShowroom_CannotStart, e);
            } finally {
                renderer?.Dispose();
                _last = null;
            }
        }