private void WorkerFunction()
        {
            // start an endless loop; loop will abort only when "serviceStarted" flag = false
            while (true)
            {
                try
                {
                    tick++;
                    CreateFileData("Events.txt", "tick: " + tick.ToString() + " Date : " + DateTime.Now.ToString());
                    CreateFileData("Events.txt", "avant requete : ok");
                    TASK_Service taskService = new TASK_Service();
                    TASK         task        = taskService.GetLastTaskToConvert();


                    if (task != null)
                    {
                        CreateFileData("Events.txt", "tache trouvée : " + task.PK_ID_TASK.ToString());
                        lock (_lockObject)
                        {
                            CreateFileData("Events.txt", "tache not null et lock : ok");
                            task.DATE_BEGIN_CONVERSION = DateTime.Now;
                            taskService.UpdateTask(task);
                            new TRACE_Service().AddTrace(new TRACE()
                            {
                                FK_ID_TASK = task.PK_ID_TASK, FK_ID_SERVER = 1, DATE_TRACE = DateTime.Now, NOM_SERVER = System.Environment.MachineName, METHOD = "INITIALISATION TASK", DESCRIPTION = "Récupération de la tache à effectuer"
                            });
                            TranscoderService.DoFFmpegConversion(task);
                        }
                    }
                }
                catch (Exception f)
                {
                    string       path          = ConfigurationManager.AppSettings["TranscoderRootServiceForLogs"] + "Exception.txt";
                    StreamWriter oStreamWriter = new StreamWriter(path, true);
                    oStreamWriter.WriteLine("DATE : " + DateTime.Now.ToString());
                    oStreamWriter.WriteLine(f.Message);
                    oStreamWriter.WriteLine(f.InnerException);
                    oStreamWriter.WriteLine(f.StackTrace);
                    oStreamWriter.Close();
                    oStreamWriter  = null;
                    serviceStarted = false;
                }
                Thread.Sleep(5000);
                serviceStarted = true;
            }
            // time to end the thread
            // Thread.CurrentThread.Abort();
        }
        public void StartDebug()
        {
            while (true)
            {
                try
                {
                    CreateFileData("Events.txt", "avant requete : ok");
                    TASK_Service taskService = new TASK_Service();
                    TASK         task        = taskService.GetListOfTaskByStatusToDoOrToMerge().FirstOrDefault();
                    CreateFileData("Events.txt", "tache trouvée : " + task.PK_ID_TASK.ToString());

                    lock (_lockObject)
                    {
                        CreateFileData("Events.txt", "lock : ok");
                        if (task != null)
                        {
                            CreateFileData("Events.txt", "tache not null : ok");
                            task.DATE_BEGIN_CONVERSION = DateTime.Now;
                            taskService.UpdateTask(task);
                            new TRACE_Service().AddTrace(new TRACE()
                            {
                                FK_ID_TASK = task.PK_ID_TASK, FK_ID_SERVER = 1, DATE_TRACE = DateTime.Now, NOM_SERVER = System.Environment.MachineName, METHOD = "INITIALISATION TASK", DESCRIPTION = "Récupération de la tache à effectuer"
                            });
                            TranscoderService.DoFFmpegConversion(task);
                        }
                    }
                }
                catch (Exception f)
                {
                    string       path          = ConfigurationManager.AppSettings["TranscoderRootServiceForLogs"] + "Exception.txt";
                    StreamWriter oStreamWriter = new StreamWriter(path, true);
                    oStreamWriter.WriteLine(f.Message);
                    oStreamWriter.WriteLine(f.InnerException);
                    oStreamWriter.WriteLine(f.StackTrace);
                    oStreamWriter.Close();
                    oStreamWriter = null;
                }
            }
        }