/// <param name="task">アクティビティのタスク</param> /// <param name="handler">タスク終了時のイベントハンドラ</param> /// <returns>アクティビティスレッド</returns> protected Thread Create(ActivityTask task, ActivityEventHandler handler) { ThreadStart start = new ThreadStart(delegate { ActivityEventArgs args = new ActivityEventArgs(); try { task(); args.IsCompleted = true; } catch (ThreadAbortException ex) { args.IsAborted = true; args.Exception = ex; } catch (Exception ex) { args.Exception = ex; } finally { MotorControler mc = MotorControler.GetInstance(parameterManager); mc.AbortMoving(); mc.SlowDownStopAll(); if (handler != null) { handler(this, args); } } }); return(Create(start)); }
public static void Subscribe(ActivityEventHandler <ActivityEventArgs> eventHandler) { ActivityEvent += eventHandler; }