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 }
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(); }
void Start() { // 나중에 서버에서 가져와야 함 runnerData = JsonData.LoadRunnerDataFromJson(); currentPositionText.text = runnerData.currentPosition.ToString(); wDPositionText.text = runnerData.wDPosition.ToString(); }
public void Restart() { RunnerData resetData = new RunnerData(1, 0, 0); JsonData.SaveRunnerDataToJson(resetData); SceneManager.LoadScene("SampleScene"); }
public static void SaveRunnerDataToJson(RunnerData runnerData) { string jsonData = JsonUtility.ToJson(runnerData, true); // 현재는 클라이언트 string path = Path.Combine(Application.dataPath, "RunnerData.json"); File.WriteAllText(path, jsonData); }
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); }
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); } }
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); }
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); }
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); }
// Загрузка данных для элементов 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); } } } }
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); } }
/// <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); }
/// <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}'"); }
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); } }