Пример #1
0
        public MultiThreadRunner(string name, bool relaxed = true, int intervalInMs = 0)
        {
            _name = name;
            var runnerData = new RunnerData(relaxed, intervalInMs, name);

            _runnerData = runnerData;
#if !NETFX_CORE || NET_STANDARD_2_0 || NETSTANDARD2_0
            //threadpool doesn't work well with Unity apparently
            //it seems to choke when too meany threads are started
            var thread = new Thread(() => runnerData.RunCoroutineFiber())
            {
                IsBackground = true
            };

            thread.Start();
#else
            var thread = new Task(() =>
            {
                _name = name;

                RunCoroutineFiber(ref runnerData);
            }, TaskCreationOptions.LongRunning);

            thread.Start();
#endif
        }
Пример #2
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            CommitTextBoxWithFocus();

            if (string.IsNullOrWhiteSpace(_runner.Name))
            {
                MessageBox.Show("Имя не введено!");
                return;
            }

            if (string.IsNullOrWhiteSpace(WeightText.Text))
            {
                MessageBox.Show("Вес не введен!");
                return;
            }


            RunnerData.Runner.Name   = _runner.Name;
            RunnerData.Runner.Weight =
                _runner.Weight;
            RunnerData.SaveRunner(delegate
            {
                MessageBox.Show("There is not enough space on your phone to " +
                                "save your car data. Free some space and try again.");
            });

            NavigationService.GoBack();
        }
Пример #3
0
    void Start()
    {
        // 나중에 서버에서 가져와야 함
        runnerData = JsonData.LoadRunnerDataFromJson();

        currentPositionText.text = runnerData.currentPosition.ToString();
        wDPositionText.text      = runnerData.wDPosition.ToString();
    }
Пример #4
0
    public void Restart()
    {
        RunnerData resetData = new RunnerData(1, 0, 0);

        JsonData.SaveRunnerDataToJson(resetData);

        SceneManager.LoadScene("SampleScene");
    }
Пример #5
0
    public static void SaveRunnerDataToJson(RunnerData runnerData)
    {
        string jsonData = JsonUtility.ToJson(runnerData, true);

        // 현재는 클라이언트
        string path = Path.Combine(Application.dataPath, "RunnerData.json");

        File.WriteAllText(path, jsonData);
    }
Пример #6
0
        void Init(string name, RunnerData runnerData)
        {
            _name       = name;
            _runnerData = runnerData;
#if !NETFX_CORE
            //threadpool doesn't work well with Unity apparently
            //it seems to choke when too meany threads are started
            new Thread(() => runnerData.RunCoroutineFiber())
            {
                IsBackground = true
            }.Start();
#else
            Task.Factory.StartNew(() => runnerData.RunCoroutineFiber(), TaskCreationOptions.LongRunning);
#endif
        }
        private int ProcessTimesheetQueue(
            int maxThreads,
            string sConn,
            SqlConnection cn,
            CancellationToken token)
        {
            var processed = 0;

            using (SqlCommand cmd = new SqlCommand("spTSGetQueue", cn))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@servername", Environment.MachineName);
                cmd.Parameters.AddWithValue("@maxthreads", maxThreads);

                var dataSet = new DataSet();
                using (SqlDataAdapter dataAdapter = new SqlDataAdapter(cmd))
                {
                    dataAdapter.Fill(dataSet);
                    foreach (DataRow dr in dataSet.Tables[0].Rows)
                    {
                        var runnerData = new RunnerData {
                            cn = sConn, dr = dr
                        };

                        var queue = dr["queue"].ToString();
                        var trial = 1;
                        if (int.TryParse(queue.Substring(0, 1), out trial))
                        {
                            trial++;
                        }

                        if (StartProcess(runnerData))
                        {
                            using (var cmd1 = new SqlCommand("UPDATE TSqueue set status=2, DTSTARTED=ISNULL(DTSTARTED,GETDATE()) where tsqueue_id=@id and status = 1", cn))
                            {
                                cmd1.Parameters.AddWithValue("@id", dr["tsqueue_id"].ToString());
                                cmd1.ExecuteNonQuery();
                            }
                        }
                        processed++;
                        token.ThrowIfCancellationRequested();
                    }
                }
            }

            return(processed);
        }
Пример #8
0
 protected bool StartProcess(RunnerData rd, int trialNumber = 1)
 {
     try
     {
         var newThread = new Thread(new ParameterizedThreadStart(DoWork));
         newThread.Start(rd);
         lock (ThreadsLock)
         {
             threadList.Add(new Tuple <Thread, DateTime, int>(newThread, DateTime.Now, trialNumber));
         }
         return(true);
     }
     catch (Exception ex)
     {
         logMessage("ERR", "STPR", ex.Message);
         return(false);
     }
 }
Пример #9
0
        private bool RegisterSingleProcess(RunnerEntity runnerEntity)
        {
            bool   isValid = true;
            string process = _hashtable.GetValue(Constants.Process);

            if (!string.IsNullOrEmpty(process))
            {
                if (ProcessChecker.Instance.IsSingleInstance(process))
                {
                    if (runnerEntity.PreRunner != null && runnerEntity.PreRunner.PreRunnerDataList != null)
                    {
                        RunnerData runnerAssembly = runnerEntity.PreRunner.PreRunnerDataList.FirstOrDefault(r => r.Enable && r.Process.Equals(process, StringComparison.OrdinalIgnoreCase));
                        runnerWork.Attach(runnerAssembly);
                    }
                    if (runnerEntity.MainRunner != null && runnerEntity.MainRunner.MainRunnerDataList != null)
                    {
                        RunnerData runnerAssembly = runnerEntity.MainRunner.MainRunnerDataList.FirstOrDefault(r => r.Enable && r.Process.Equals(process, StringComparison.OrdinalIgnoreCase));
                        runnerWork.Attach(runnerAssembly);
                    }
                    if (runnerEntity.PostRunner != null && runnerEntity.PostRunner.PostRunnerDataList != null)
                    {
                        RunnerData runnerAssembly = runnerEntity.PostRunner.PostRunnerDataList.FirstOrDefault(r => r.Enable && r.Process.Equals(process, StringComparison.OrdinalIgnoreCase));
                        runnerWork.Attach(runnerAssembly);
                    }
                    if (runnerWork.Count == 0)
                    {
                        isValid = false;
                        logger.WarnFormat(RunnerResource.ProcessIsInvalid, process);
                    }
                }
                else
                {
                    isValid = false;
                    logger.WarnFormat(RunnerResource.ProcessAlreadyRunning, process);
                }
            }
            else
            {
                isValid = false;
                logger.Error(RunnerResource.InvalidProcess);
            }
            return(isValid);
        }
Пример #10
0
    public override async View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        Context            context     = Application.Context;
        View               view        = inflater.Inflate(Resource.Layout.results_summary_view, container, false);
        ListView           listview    = view.FindViewById <ListView>(Resource.Id.AllResultsListView);
        ISharedPreferences preferences = Application.Context.GetSharedPreferences("UserInfo", FileCreationMode.Private);
        string             id          = preferences.GetString("ID", string.Empty);

        if (id != null && data == null)
        {
            RunnerData RunnerData = new RunnerData(id);
            // This is not happening before OnCreateView?
            data = await RunnerData.GetAllResults();
        }
        //Now, your compiler knows that you need data and it will wait until data is obtained.
        ResultsSummaryListAdapter adapter = new ResultsSummaryListAdapter(context, data);

        listview.Adapter = adapter;
        return(view);
    }
Пример #11
0
    private void SpawnRunner()
    {
        int round     = spawnQueue.Dequeue();
        int hitpoints = RunnerData.getRoundRunnerHealth(round, RunnerData.DIFFICULTY.NOOB);
        int bounty    = RunnerData.getRoundRunnerBounty(round) * 2; // temp, till I get end-of-round bounty working again.

        /*GameObject runner = */ Spawner.SpawnRunner(hitpoints, bounty, round);

        if (spawnQueue.Count > 0)
        {
            spawning = true;
            Invoke("SpawnRunner", Constants.MIN_SPAWN_PERIOD);
        }
        else
        {
            spawning = false;
        }

        //Player.Active.AddGold (RunnerData.getRoundFinishBounty(round));
        //Invoke("NextWave", Constants.ROUND_WAIT_TIME);
    }
Пример #12
0
        // Загрузка данных для элементов ViewModel
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (buttomV)
            {
                timer.Start();
                buttomV = false;
            }
            else
            {
                buttomV = true;
                timer.Stop();
                SaveResult result = RunnerData.SaveFillup(_currentFillup,
                                                          delegate
                {
                    MessageBox.Show("There is not enough space on your phone to " +
                                    "save your fill-up data. Free some space and try again.");
                });

                if (result.SaveSuccessful)
                {
                    Microsoft.Phone.Shell.PhoneApplicationService.Current
                    .State[Constants.FILLUP_SAVED_KEY] = true;
                    //NavigationService.GoBack();
                }
                else
                {
                    string errorMessages = String.Join(
                        Environment.NewLine + Environment.NewLine,
                        result.ErrorMessages.ToArray());
                    if (!String.IsNullOrEmpty(errorMessages))
                    {
                        MessageBox.Show(errorMessages,
                                        "Warning: Invalid Values", MessageBoxButton.OK);
                    }
                }
            }
        }
Пример #13
0
        public override void RunTask(CancellationToken token)
        {
            try
            {
                SPWebApplicationCollection _webcolections = GetWebApplications();
                foreach (SPWebApplication webApp in _webcolections)
                {
                    string sConn = EPMLiveCore.CoreFunctions.getConnectionString(webApp.Id);
                    if (sConn != "")
                    {
                        using (var cn = new SqlConnection(sConn))
                        {
                            try
                            {
                                cn.Open();

                                using (var cmd = new SqlCommand("spSecGetQueue", cn))
                                {
                                    cmd.CommandType = CommandType.StoredProcedure;
                                    cmd.Parameters.AddWithValue("@servername", System.Environment.MachineName);
                                    cmd.Parameters.AddWithValue("@maxthreads", MaxThreads);

                                    var ds = new DataSet();
                                    using (var da = new SqlDataAdapter(cmd))
                                    {
                                        da.Fill(ds);
                                        if (ds.Tables.Count > 0)
                                        {
                                            int processed = 0;
                                            foreach (DataRow dr in ds.Tables[0].Rows)
                                            {
                                                var rd = new RunnerData {
                                                    cn = sConn, dr = dr
                                                };

                                                if (StartProcess(rd))
                                                {
                                                    using (var cmd1 = new SqlCommand("UPDATE ITEMSEC set status=2 where ITEM_SEC_ID=@id", cn))
                                                    {
                                                        cmd1.Parameters.Clear();
                                                        cmd1.Parameters.AddWithValue("@id", dr["ITEM_SEC_ID"].ToString());
                                                        cmd1.ExecuteNonQuery();
                                                    }
                                                    processed++;
                                                }

                                                token.ThrowIfCancellationRequested();
                                            }
                                            if (processed > 0)
                                            {
                                                logMessage("HTBT", "PRCS", "Processed " + processed + " jobs");
                                            }
                                        }
                                    }
                                }
                            }
                            catch (Exception ex) when(!(ex is OperationCanceledException))
                            {
                                logMessage("ERR", "RUN", ex.Message);
                            }
                        }
                    }
                }
            }
            catch (Exception ex) when(!(ex is OperationCanceledException))
            {
                logMessage("ERR", "RUN", ex.Message);
            }
        }
Пример #14
0
        /// <summary>
        /// Start a Multithread runner that won't take 100% of the CPU
        /// </summary>
        /// <param name="name"></param>
        /// <param name="intervalInMs"></param>
        public MultiThreadRunner(string name, float intervalInMs)
        {
            var runnerData = new RunnerData(true, intervalInMs, name, false);

            Init(name, runnerData);
        }
Пример #15
0
        /// <summary>
        /// when the thread must run very tight and cache friendly tasks that won't
        /// allow the CPU to start new threads, passing the tightTasks as true
        /// would force the thread to yield after every iteration. Relaxed to true
        /// would let the runner be less reactive on new tasks added
        /// </summary>
        /// <param name="name"></param>
        /// <param name="tightTasks"></param>
        public MultiThreadRunner(string name, bool relaxed = false, bool tightTasks = false)
        {
            var runnerData = new RunnerData(relaxed, 0, name, tightTasks);

            Init(name, runnerData);
        }
 public static string UpdateRunner(RunnerData runner, string email)
 {
     return($"UPDATE [Runner] SET Gender = '{runner.gender}', DateOfBirth = @DateOfBirth, CountryCode = '{runner.country.code}' " +
            $"WHERE Email = '{email}'");
 }
Пример #17
0
        public override void RunTask(CancellationToken token)
        {
            try
            {
                SPWebApplicationCollection _webcolections = GetWebApplications();
                foreach (SPWebApplication webApp in _webcolections)
                {
                    string sConn = EPMLiveCore.CoreFunctions.getConnectionString(webApp.Id);
                    if (sConn != "")
                    {
                        using (SqlConnection cn = new SqlConnection(sConn))
                        {
                            try
                            {
                                cn.Open();
                                if (queueJobs)
                                {
                                    DateTime newRun = DateTime.Now;
                                    if (newRun.Minute < lastRun.Minute)
                                    {
                                        using (SqlCommand cmd = new SqlCommand("spQueueTimerJobs", cn))
                                        {
                                            cmd.CommandType = System.Data.CommandType.StoredProcedure;
                                            cmd.ExecuteNonQuery();
                                        }
                                    }
                                    lastRun = newRun.AddHours(1).AddMinutes(-newRun.Minute - 1);
                                }
                                using (SqlCommand cmd = new SqlCommand("spTimerGetQueue", cn))
                                {
                                    cmd.CommandType = CommandType.StoredProcedure;
                                    cmd.Parameters.AddWithValue("@servername", System.Environment.MachineName);
                                    cmd.Parameters.AddWithValue("@maxthreads", MaxThreads);
                                    cmd.Parameters.AddWithValue("@minPriority", highPriority? 0:10);
                                    cmd.Parameters.AddWithValue("@maxPriority", highPriority? 10:99);

                                    DataSet ds = new DataSet();
                                    using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                                    {
                                        da.Fill(ds);
                                        int processed = 0;
                                        foreach (DataRow dr in ds.Tables[0].Rows)
                                        {
                                            RunnerData rd = new RunnerData();
                                            rd.cn = sConn;
                                            rd.dr = dr;

                                            if (StartProcess(rd))
                                            {
                                                using (SqlCommand cmd1 = new SqlCommand("UPDATE queue set status=1, dtstarted = GETDATE() where queueuid=@id", cn))
                                                {
                                                    cmd1.Parameters.Clear();
                                                    cmd1.Parameters.AddWithValue("@id", dr["queueuid"].ToString());
                                                    cmd1.ExecuteNonQuery();
                                                }
                                                processed++;
                                            }

                                            token.ThrowIfCancellationRequested();
                                        }
                                        if (processed > 0)
                                        {
                                            logMessage("HTBT", "PRCS", "Processed " + processed + " jobs");
                                        }
                                    }
                                }
                            }
                            catch (Exception ex) when(!(ex is OperationCanceledException))
                            {
                                logMessage("ERR", "RUNT", ex.ToString());
                            }
                        }
                    }
                }
            }
            catch (Exception ex) when(!(ex is OperationCanceledException))
            {
                logMessage("ERR", "RUNT", ex.ToString());
            }
        }
        public override void RunTask(CancellationToken token)
        {
            try
            {
                SPWebApplicationCollection _webcolections = GetWebApplications();
                foreach (SPWebApplication webApp in _webcolections)
                {
                    string sConn = EPMLiveCore.CoreFunctions.getConnectionString(webApp.Id);
                    if (sConn != "")
                    {
                        using (SqlConnection cn = new SqlConnection(sConn))
                        {
                            try
                            {
                                cn.Open();
                                using (SqlCommand cmd = new SqlCommand("spINTGetQueue", cn))
                                {
                                    cmd.CommandType = CommandType.StoredProcedure;
                                    cmd.Parameters.AddWithValue("@servername", System.Environment.MachineName);
                                    DataSet ds = new DataSet();
                                    using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                                    {
                                        da.Fill(ds);
                                        int processed = 0;
                                        foreach (DataRow dr in ds.Tables[0].Rows)
                                        {
                                            RunnerData rd = new RunnerData();
                                            rd.cn = sConn;
                                            rd.dr = dr;
                                            if (StartProcess(rd))
                                            {
                                                using (SqlCommand cmd1 = new SqlCommand("UPDATE INT_EVENTS set status=1 where INT_EVENT_ID=@id", cn))
                                                {
                                                    cmd1.Parameters.Clear();
                                                    cmd1.Parameters.AddWithValue("@id", dr["INT_EVENT_ID"].ToString());
                                                    cmd1.ExecuteNonQuery();
                                                }
                                                processed++;
                                            }
                                            token.ThrowIfCancellationRequested();
                                        }
                                        if (processed > 0)
                                        {
                                            logMessage("HTBT", "PRCS", "Processed " + processed + " jobs");
                                        }

                                        using (SqlCommand cmd2 = new SqlCommand("delete from INT_EVENTS where DateAdd(day, 1, EVENT_TIME) < GETDATE()", cn))
                                        {
                                            cmd.ExecuteNonQuery();
                                        }
                                    }
                                }
                            }
                            catch (Exception ex) when(!(ex is OperationCanceledException))
                            {
                                logMessage("ERR", "RUNT", ex.Message);
                            }
                        }
                    }
                }
            }
            catch (Exception ex) when(!(ex is OperationCanceledException))
            {
                logMessage("ERR", "RUNT", ex.Message);
            }
        }