public override void StartAction() { Cat cat = GetCat(); FurnitureBase drinkBow = catCafe.GetFurnitureByType(FurnitureType.Water); InteractPoint point = drinkBow.ReserveInteractionPoint(cat); if (point == null) { ActionEnd(); return; } CatWalkTask walkTask = actionHolder.AddComponent <CatWalkTask>(); walkTask.SetTaskTarget(drinkBow.gameObject, point.transform.position, cat); CatDrinkTask drinkTask = actionHolder.AddComponent <CatDrinkTask>(); drinkTask.SetTaskTarget(drinkBow.gameObject, Vector3.zero, cat); TaskChain chain = actionHolder.AddComponent <TaskChain>(); chain.PushTask(walkTask); chain.PushTask(drinkTask); chain.notifyTaskChainEnd += OnTaskChainEnd; chain.StartTaskChain(); }
public static void T_InsertAndSelect() { try { var tc = new TaskChain(); var connStr = GetMySqlConnString(); var conn = new MySqlConnection(connStr); conn.UseConnectionPool = true; conn.AsyncOpen(tc); DropTableIfExists(conn, tc); CreateTable(conn, tc); for (int i = 0; i < 1; ++i) { InsertData(conn, tc); } SelectDataBack(conn, tc); conn.AsyncClose(tc); // tc.WhenFinish(() => { }); tc.BeforeEachTaskBegin(() => { }); tc.Start(); } catch (Exception ex) { } }
static void SelectDataBack(MySqlConnection conn, TaskChain tc) { string sql = "select * from test001"; var cmd = new MySqlCommand(sql, conn); tc.AddTask(() => { #if DEBUG conn.dbugPleaseBreak = true; #endif }); //this is very basic mapper*** var mapper = Mapper.Map((SimpleInfo t, int col_id, string col2, string col3) => { t.col1 = col_id; t.col2 = col2; }); cmd.AsyncExecuteSubTableReader(tc, reader => { mapper.DataReader = reader; while (SharpConnect.MySql.SyncPatt.MySqlSyncPattExtension.Read(reader)) { var simpleInfo = mapper.Map(new SimpleInfo()); } tc.AutoCallNext = reader.CurrentSubTable.IsLastTable; }); }
public override void StartAction() { if (toyTask == null) { SelectNearestToy(); // TODO more toys toyTask = ActionUtils.Instance.CreatCatTaskByType(TaskType.PlayBall, toyObj, Vector3.zero, GetCat()); } if (toyObj == null) { Debug.LogError("Cannot find any Toy"); return; } CatRunTask runTask = ActionUtils.Instance.CreatCatTaskByType(TaskType.Run, toyObj, toyObj.transform.position, GetCat()) as CatRunTask; runTask.StopDistance = 0.5f; CatPlayBallTask playBallTask = actionHolder.AddComponent <CatPlayBallTask>(); playBallTask.SetTaskTarget(toyObj, Vector3.zero, GetCat()); TaskChain chain = actionHolder.AddComponent <TaskChain>(); chain.PushTask(runTask); chain.PushTask(playBallTask); chain.notifyTaskChainEnd += OnTaskChainEnd; chain.StartTaskChain(); }
static void DropTableIfExists(MySqlConnection conn, TaskChain tc) { string sql = "drop table if exists test001"; var cmd = new MySqlCommand(sql, conn); cmd.AsyncExecuteNonQuery(tc); }
static void SelectDataBack(MySqlConnection conn, TaskChain tc) { string sql = "select * from test001"; var cmd = new MySqlCommand(sql, conn); tc.AddTask(() => { #if DEBUG conn.dbugPleaseBreak = true; #endif }); //this is very basic mapper*** var mapper = Mapper.Map((SimpleInfo t, int col_id, string col2, string col3) => { t.col1 = col_id; t.col2 = col2; }); cmd.AsyncExecuteSubTableReader(tc, reader => { mapper.DataReader = reader; while (reader.Read()) { var simpleInfo = mapper.Map(new SimpleInfo()); } ////simple map query result to member of the target object ////we create simpleinfo and use mapper to map field tc.AutoCallNext = reader.CurrentSubTable.IsLastTable; }); }
public static void T_DropCreateInsert() { var connStr = GetMySqlConnString(); var conn = new MySqlConnection(connStr); var tc = new TaskChain(); conn.AsyncOpen(tc); { //1. drop tabled var cmd = new MySqlCommand("drop table if exists user_info2", conn); cmd.AsyncExecuteNonQuery(tc); } { var cmd = new MySqlCommand("drop table if exists user_info2", conn); cmd.AsyncExecuteNonQuery(tc); } //2. create new one { var cmd = new MySqlCommand("create table user_info2(uid int(10),u_name varchar(45));", conn); cmd.AsyncExecuteNonQuery(tc); } //3. add some data { var cmd = new MySqlCommand("insert into user_info2(uid, u_name) values(?uid, 'abc')", conn); cmd.Parameters.AddWithValue("?uid", 10); cmd.AsyncExecuteNonQuery(tc); } Report.WriteLine("ok"); conn.AsyncClose(tc); tc.Start(); }
public override void StartAction() { Cat cat = GetCat(); FurnitureBase foodBow = catCafe.GetFurnitureByType(FurnitureType.Food); InteractPoint point = foodBow.ReserveInteractionPoint(cat); if (point == null) { // TODO need to check, there is bug when two cat both reserve ActionEnd(); return; } // TODO if no point CatWalkTask walkTask = actionHolder.AddComponent <CatWalkTask>(); walkTask.SetTaskTarget(foodBow.gameObject, point.transform.position, cat); CatEatTask eatTask = actionHolder.AddComponent <CatEatTask>(); eatTask.SetTaskTarget(foodBow.gameObject, Vector3.zero, cat); TaskChain chain = actionHolder.AddComponent <TaskChain>(); chain.PushTask(walkTask); chain.PushTask(eatTask); chain.notifyTaskChainEnd += OnTaskChainEnd; chain.StartTaskChain(); }
static void CreateTable(MySqlConnection conn, TaskChain tc) { string sql = "create table test001(col_id int(10) unsigned not null auto_increment, col1 int(10)," + "col2 char(2),col3 varchar(255),col4 datetime, primary key(col_id) )"; var cmd = new MySqlCommand(sql, conn); cmd.AsyncExecuteNonQuery(tc); }
public static void Check2() { Task <int[]> .Factory .StartNew(() => TaskChain.GenerateArray(10)) .LogAndContinueArray(TaskChain.MultiplyBy) .LogAndContinueArray(TaskChain.SortAscending) .LogAndContinue(TaskChain.Average) .LogAndContinue(() => System.Console.WriteLine("Finish")) .Wait(); }
public Task( int id, string taskName, string description) { Id = id; TaskName = taskName; Description = description; Chain = new TaskChain(this); }
public static void T_AsyncSocket2() { var connStr = GetMySqlConnString(); var conn = new MySqlConnection(connStr); var tc = new TaskChain(); conn.AsyncOpen(tc); conn.AsyncClose(tc); tc.Start(); }
public override List <Task> GetList() { base.GetList(); foreach (var chain in chains) { TaskChain.RegisterInTaskChain(chain.Value.Values); } return(Data); }
static void InsertData(MySqlConnection conn, TaskChain tc) { string sql = "insert into test001(col1,col2,col3,col4) values(10,'AA','123456789','0001-01-01')"; var cmd = new MySqlCommand(sql, conn); cmd.AsyncExecuteNonQuery(tc); tc.AddTask(() => { var lastInsertId = cmd.LastInsertedId; }); }
public void RunAsync_RunsTasksInSequenceAndCompletesAfterAction() { TaskCompletionSource <bool> tcs = new TaskCompletionSource <bool>(); bool done = false; TaskChain chain = new TaskChain(() => tcs.Task, () => done = true); Task task = chain.RunAsync(); Assert.False(task.IsCompleted); Assert.False(done); tcs.SetResult(true); Assert.True(task.IsCompleted); Assert.False(task.IsFaulted); Assert.True(done); }
public int UpdateAndGetTaskCount() { if (m_chain != null) { var status = m_chain.Next(); if (status == ExecutionStatus.Continue) { // m_item継続中 return(m_taskQueue.Count); } m_chain = null; } int count; m_chain = m_taskQueue.Dequeue(out count); return(count); }
public static void T_InsertAndSelect_Async() { System.Diagnostics.Stopwatch stopW = new System.Diagnostics.Stopwatch(); stopW.Start(); var connStr = GetMySqlConnString(); var conn = new MySqlConnection(connStr); conn.UseConnectionPool = true; var tc = new TaskChain(); conn.AsyncOpen(tc); { //drop table if exist string sql = "drop table if exists test001"; var cmd = new MySqlCommand(sql, conn); cmd.AsyncExecuteNonQuery(tc); } { string sql = "create table test001(col_id int(10) unsigned not null auto_increment, col1 int(10)," + "col2 char(2),col3 varchar(255),col4 datetime, primary key(col_id) )"; var cmd = new MySqlCommand(sql, conn); cmd.AsyncExecuteNonQuery(tc); } for (int i = 0; i < 2000; ++i) { string sql = "insert into test001(col1,col2,col3,col4) values(10,'AA','123456789','0001-01-01')"; var cmd = new MySqlCommand(sql, conn); cmd.AsyncExecuteNonQuery(tc); } conn.AsyncClose(tc); tc.WhenFinish(() => { stopW.Stop(); Report.WriteLine("avg:" + stopW.ElapsedTicks); }); tc.Start(); }
public void RunAsync_ExceptionInFirstTask_ThrowsExceptionSkipsAction() { TaskCompletionSource <bool> tcs = new TaskCompletionSource <bool>(); bool done = false; InvalidTimeZoneException expectedException = new InvalidTimeZoneException("expected"); TaskChain chain = new TaskChain(() => tcs.Task, () => done = true); Task task = chain.RunAsync(); tcs.SetException(expectedException); Assert.True(task.IsCompleted); Assert.True(task.IsFaulted); AggregateException ae = Assert.IsType <AggregateException>(task.Exception).Flatten(); Assert.Equal(1, ae.InnerExceptions.Count); Assert.Same(expectedException, ae.InnerExceptions[0]); Assert.False(done); }
public static void T_Select_sysdate3() { //prefer this var connStr = GetMySqlConnString(); var conn = new MySqlConnection(connStr); var tc = new TaskChain(); conn.AsyncOpen(tc); var cmd = new MySqlCommand("select sysdate()", conn); cmd.AsyncExecuteReader(tc, reader => { //this example we read each row asynchronously //read as var dtm = reader.GetDateTime(0); }); conn.AsyncClose(tc); tc.WhenFinish(() => { }); tc.Start(); }
public static void T_Select_sysdate3() { //prefer this var connStr = GetMySqlConnString(); var conn = new MySqlConnection(connStr); var tc = new TaskChain(); conn.AsyncOpen(tc); var cmd = new MySqlCommand("select sysdate()", conn); cmd.AsyncExecuteSubTableReader(tc, reader => { if (reader.Read()) { var dtm = reader.GetDateTime(0); } }); conn.AsyncClose(tc); tc.WhenFinish(() => { }); tc.Start(); }
public static void T_InsertAndSelect_Async3() { System.Diagnostics.Stopwatch stopW = new System.Diagnostics.Stopwatch(); stopW.Start(); var connStr = GetMySqlConnString(); var conn = new MySqlConnection(connStr); conn.UseConnectionPool = true; var tc = new TaskChain(); //add task chain too connection object conn.AsyncOpen(tc); //----------------------------------------- { //drop table if exist string sql = "drop table if exists test001"; var cmd = new MySqlCommand(sql, conn); cmd.AsyncExecuteNonQuery(tc); } //----------------------------------------- { //drop table if exist string sql = "drop table if exists test001"; var cmd = new MySqlCommand(sql, conn); cmd.AsyncExecuteNonQuery(tc); } //----------------------------------------- { string sql = "create table test001(col_id int(10) unsigned not null auto_increment, col1 int(10)," + "col2 char(2),col3 varchar(255),col4 datetime, primary key(col_id) )"; var cmd = new MySqlCommand(sql, conn); cmd.AsyncExecuteNonQuery(tc); } //----------------------------------------- for (int i = 0; i < 100; ++i) { string sql = "insert into test001(col1,col2,col3,col4) values(10,'AA','123456789','0001-01-01')"; var cmd = new MySqlCommand(sql, conn); cmd.AsyncExecuteNonQuery(tc); } //----------------------------------------- { string sql = "select * from test001"; var cmd = new MySqlCommand(sql, conn); cmd.AsyncExecuteSubTableReader(tc, subtable => { //when new task is add after tc is started //then this new task is immmediately insert //after current task }); } { string sql = "select sysdate()"; var cmd = new MySqlCommand(sql, conn); cmd.AsyncExecuteScalar <DateTime>(tc, dtm => { }); } //----------------------------------------- conn.AsyncClose(tc); tc.WhenFinish(() => { stopW.Stop(); Report.WriteLine("avg:" + stopW.ElapsedTicks); }); tc.BeforeEachTaskBegin(() => { Console.WriteLine(tc.CurrentTaskIndex + "/" + tc.TaskCount); }); //---------------------------------------- tc.Start(); }
public void Setup() { globalCancellationToken = new CancellationTokenSource(); taskChain = new TaskChain(); currentTask = 0; }
/// <summary> /// 添加任务到任务管线中 /// </summary> private void AddTasksToATBuildPipline(TaskChain taskChain) { buildTasks.Clear(); ATBuildPipline.Instance.ClearBuildTasks(); switch (taskChain) { case TaskChain.默认任务链: { #region 默认任务链 //TODO //主要任务链 #endregion } break; case TaskChain.资源打包: { } break; case TaskChain.APK出包: { } break; case TaskChain.测试任务链: { #region 相关测试任务 //测试 //for (int i = 0; i < 10; i++) //{ // ATBuildPipline.Instance.AddBuildTask(new TestTask(Instance)); //} //测试任务 //ATBuildPipline.Instance.AddBuildTask(new TestFailureTask(Instance)); //ATBuildPipline.Instance.AddBuildTask(new TestCallBatByThreadTask(Instance)); //ATBuildPipline.Instance.AddBuildTask(new TestTask(Instance)); //测试回滚 for (int i = 0; i < 5; i++) { ATBuildPipline.Instance.AddBuildTask(new TestTask(Instance)); } ATBuildPipline.Instance.AddBuildTask(new TestReverseTask(Instance)); ATBuildPipline.Instance.AddBuildTask(new TestFailureTask(Instance)); #endregion } break; } //获取所有任务 foreach (var item in ATBuildPipline.Instance.Tasks) { buildTasks.Add(item); } }
protected override void OnInitialized(EventArgs eventArgs) { base.OnInitialized(eventArgs); try { instance = this; // Update the position and size of the window. UpdatePosition(); // Set the window as NO_ACTIVATE, TOOLWINDOW and TOPMOST, WindowStyles.SetExtended(this, WindowStyles.GetExtended(this) | ExtendedWindowStyle.WS_EX_NOACTIVATE | ExtendedWindowStyle.WS_EX_TOOLWINDOW | ExtendedWindowStyle.WS_EX_TOPMOST); // Apply the user-selected locale. IntlManager.Apply(new CultureInfo(AppState.Current.UserSettings.Locale)); // Apply the user-selected theme. ThemeManager.Apply(AppState.Current.UserSettings.Theme); // Initialize the drop shadow. _dropShadow = new WindowDropShadow(this) { Radius = 15.0, Strength = 2.0, Opacity = 0.0, }; // Set the window's view-model. _viewModel = new OverviewViewModel(); InitializeQuickInfoWindow(); // Request the needed window permissions. (>= Windows 8) _clipboardPermission = new UIPermission(PermissionState.Unrestricted) { Clipboard = UIPermissionClipboard.AllClipboard }; // Setup the clipboard manager and the according event listeners. _clipboardManager = new ClipboardManager(this); _clipboardManager.StateChanged += OnClipboardStateChanged; // Initially hidden. _isVisible = false; _transitions = new TaskChain(); // Initialize the window message receiver with a name. _wmr = new WindowMessageReceiver("MULTICLIP_IPC", null); // Setup the IPC handler. _wmr.MessageReceived += OnMessageReceived; // Initialize and set the low-level mouse hook. _mouseHook = new LowLevelMouseHook(); _mouseHook.LButtonDown += OnMouseHookButtonDown; _mouseHook.RButtonDown += OnMouseHookButtonDown; _mouseHook.XButtonDown += OnMouseHookButtonDown; _mouseHook.SetHook(); // Initialize and register the overview hotkey. _overviewHotkey = new GlobalHotkey(HotkeyModfier.Ctrl, Keys.Space); _overviewHotkey.Pressed += OnOverviewHotkeyPressed; _overviewHotkey.Register(); // Initialize and register the secure-copy hotkey. _secureCopyHotkey = new GlobalHotkey(HotkeyModfier.Ctrl | HotkeyModfier.Alt, Keys.C); _secureCopyHotkey.Pressed += OnSecureCopyHotkeyPressed; _secureCopyHotkey.Register(); // Show the help window on the first run of the app. if ((bool)Properties.Settings.Default["IsFirstRun"] == true) { Properties.Settings.Default["IsFirstRun"] = false; Properties.Settings.Default.Save(); HelpWindow helpWindow = new HelpWindow(); helpWindow.Show(); } ClipboardList.ItemsSource = _viewModel.ClipboardItems; // When a file-drop item is about to open a subwindow, // hide the main window. FileDropItem.PreviewShellExecute += delegate { if (_isVisible) { HideAsync().GetAwaiter(); } }; } catch (Exception e) { _logger.LogCritical(LogEvents.FatalErr, "Failed to initialize the main window!", e); Exceptions.NotifyCritical(e); } }
public void Enqueue(TaskChain item) { m_taskQueue.Enqueue(item); }
private void CreateHandlers() { networkCatch = new NetworkTaskChain(Configuration.Configuration.Instance()); audioCatch = new AudioTaskChain(Configuration.Configuration.Instance()); audioCatch.SetSuccesor(networkCatch); }
public void OnTaskChainEnd(TaskChain taskChain) { ActionEnd(); }