private static void LoadPacketFilesTask(IEnumerable <FileControlParam> files) { var packets_new = CreatePacketContainer(); foreach (var(file, index) in files.Select((value, index) => (value, index))) { /* ステータステキストを更新 */ FormUiManager.SetStatusText( StatusTextID.SaveLoadEventFile, String.Format( "{0} {1} / {2} ({3})", ConfigManager.Language.MainMessage.EventFileLoading.Value, index + 1, files.Count(), packets_new.Count)); /* PacketLogReaderが生成できなければ読み込まない */ var reader = file.Format.CreateReader() as PacketLogReader; if (reader == null) { continue; } /* ファイルを開くことができない場合は何もしない */ if (!reader.Open(file.Option, file.FilePath)) { continue; } DebugManager.MessageOut(string.Format("LoadPacketFile - Start [{0}]", Path.GetFileName(file.FilePath))); /* プログレスバーを初期化 */ FormUiManager.SetProgressBar(0, false); /* ファイルを1つずつ処理 */ var task = (new LoadPacketFileExecTaskDelegate(LoadPacketFileExecTask)).BeginInvoke( packets_new, reader, null, null); /* 完了待ち */ while (!task.IsCompleted) { System.Threading.Thread.Sleep(100); FormUiManager.SetProgressBar((byte)(reader.ProgressNow / (Math.Max(reader.ProgressMax / 100, 1))), false); } } /* コンテナ差し替え */ packets_?.Dispose(); packets_ = packets_new; /* ステータスバーを終了 */ FormUiManager.SetStatusText(StatusTextID.SaveLoadEventFile, ConfigManager.Language.MainMessage.EventFileLoadComplete.Value); FormUiManager.SetProgressBar(100, true); /* 再描画 */ FormTaskManager.RedrawPacketRequest(); }
public static void Startup() { /* パケットマネージャー初期化 */ BasePacketManager = new PacketManager(true); BasePacketManager.PacketEntry += OnPacketEntry; /* 使用していないパケットキャッシュを削除する */ // ResetPacketCacheDirectory(); packets_ = CreatePacketContainer(); }
private static void LoadPacketFileExecTask(IPacketContainer packets, PacketLogReader reader) { PacketObject packet; while ((packet = reader.ReadPacket()) != null) { packets.Add(packet); } reader.Close(); DebugManager.MessageOut("LoadPacketFile - Complete"); }
public static void ClearPacket() { AutoTimeStampManager.ClearPacket(); /* コンテナ初期化 */ lock (packets_sync_) { packets_?.Dispose(); packets_ = CreatePacketContainer(); } BasePacketManager.Clear(); /* イベント通知 */ RawPacketCleared(); /* UIパケットをクリア */ FormTaskManager.DrawPacketClear(); }