public static GenreConv GetInstance() { if (singleObj == null) { singleObj = new GenreConv(); } return(singleObj); }
private static void LoadDef() { Log.Write("初期化中..."); Util.CopyUserFile(); MainDef.GetInstance().Check(); GenreConv.GetInstance(); TextConv.GetInstance(); EpgWait.GetInstance(); }
static void Main(string[] args) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); WebServer ws = null; var ticket = new Ticket("/tvmaid/mutex/main"); try { if (ticket.GetOwner(60 * 1000) == false) { ticket = null; throw new AppException("時間内に二重起動が解消されませんでした。"); } Log.Write(AppVer); LoadDef(); //先に読み込んでおく GenreConv.GetInstance(); TextConv.GetInstance(); if (args.Length == 1 && args[0] == "-tunerupdate") { UpdateTuner(); } TaskList.StartNew(() => { RecTimer.GetInstance().Start(); }); ws = new WebServer(); TaskList.StartNew(() => { ws.Start(); }); TunerMon.GetInstance(); Application.Run(new Tasktray()); } catch (Exception e) { MessageBox.Show("このエラーは回復できないため、アプリケーションは終了します。[詳細]" + e.Message, Logo); } finally { if (ws != null) { ws.Dispose(); } RecTimer.GetInstance().Dispose(); if (StateDef != null) { StateDef.Save(); } //スレッド終了待ち int i = 0; while (TaskList.GetInstance().IsFinish() == false) { System.Threading.Thread.Sleep(100); i++; if (i > 300) { break; } } if (ticket != null) { ticket.Dispose(); } } }