public async Task Run(IProcess process, VoiceroidAction action) { ValidateArgumentNull(process, nameof(process)); if ( process.MainWindowHandle == IntPtr.Zero || action == VoiceroidAction.None) { return; } // VOICEROIDのメインウィンドウ作成 var processWin = new Win32Window(process.MainWindowHandle); // アクション別メソッド作成 Action method = null; switch (action) { case VoiceroidAction.Forward: method = () => this.DoForwardAction(processWin); break; case VoiceroidAction.StopFlash: method = () => this.DoStopFlashAction(processWin); break; default: return; } // メソッド実施 await this.MainWindow.Dispatcher.InvokeAsync(method); }
public async Task Run(IProcess process, VoiceroidAction action) { if (process == null) { throw new ArgumentNullException(nameof(process)); } if ( process.MainWindowHandle == IntPtr.Zero || action == VoiceroidAction.None) { return; } // VOICEROIDのメインウィンドウ作成 var processWin = new Win32Window(process.MainWindowHandle); // アクション別メソッド作成 Action method = null; switch (action) { case VoiceroidAction.Forward: method = () => this.DoForwardAction(processWin); break; case VoiceroidAction.StopFlash: method = () => this.DoStopFlashAction(processWin); break; default: return; } // メソッド実施 await this.Window.Dispatcher.InvokeAsync(method); }
/// <summary> /// VOICEROIDプロセスに対してアクションを行う。 /// </summary> /// <param name="process">VOICEROIDプロセス。</param> /// <param name="action">アクション種別。</param> private Task RaiseVoiceroidAction(IProcess process, VoiceroidAction action) => this.VoiceroidActionService.Run(process, action);
Task IVoiceroidActionService.Run(IProcess process, VoiceroidAction action) => Task.FromResult(0);