/// <summary>
        /// ファイルのチェックスレッド
        /// </summary>
        public async void FileCheckTask()
        {
            while (true)
            {
                // 1秒待ち合わせ(キャンセル受付)
                if (stopping)
                {
                    return;
                }
                await Task.Delay(1000);

                if (stopping)
                {
                    return;
                }

                // 新規ファイルが来ていない場合は何もしない
                if (checkFilePathList.Count == 0)
                {
                    continue;
                }

                var addFilePathList      = new List <string>();
                var delCheckFilePathList = new List <string>();
                lock (lockObj)
                {
                    foreach (string filePath in checkFilePathList)
                    {
                        // 書き込みオープンで開けるか(ほかソフトの書き込みがおわったかチェック)
                        if (CanWrite(filePath))
                        {
                            addFilePathList.Add(filePath);
                            delCheckFilePathList.Add(filePath);
                            LogWindow.LogMessage($"監視フォルダ内のファイルが変換可能になりました。 File={filePath}", LogWindow.MessageType.Information);
                        }
                    }
                    // 追加可能となったものはチェック対象から削除
                    delCheckFilePathList.ForEach(item => checkFilePathList.Remove(item));
                }

                // ファイル追加イベント発行
                if (addFilePathList.Count > 0)
                {
                    var e = new FileAddedEventArgs
                    {
                        FileList = addFilePathList
                    };
                    OnFileAdded(e);
                }
            }
        }
 /// <summary>
 /// 指定フォルダのファイル追加処理
 /// </summary>
 /// <param name="path"></param>
 /// <param name="filter"></param>
 public async Task AddFiles(string path, string filter)
 {
     await Task.Run(() =>
     {
         IEnumerable <string> filePaths = Directory.EnumerateFiles(path, string.IsNullOrWhiteSpace(filter) ? "*.*" : filter, SearchOption.TopDirectoryOnly);
         // ファイル追加イベント発行
         if (filePaths.Count() > 0)
         {
             var e = new FileAddedEventArgs
             {
                 FileList = filePaths.ToList()
             };
             OnFileAdded(e);
         }
     });
 }
 /// <summary>
 /// イベントを発生させる
 /// </summary>
 /// <param name="e"></param>
 protected virtual void OnFileAdded(FileAddedEventArgs e)
 {
     FileAddedEvent?.Invoke(this, e);
 }