예제 #1
0
        public ThreadClass(string Name, ThreadCallback Callback)
        {
            this.Name     = Name;
            this.Callback = Callback;

            Counter = 0;
            Stop    = false;
        }
예제 #2
0
 public static void StartThread(ThreadHandler handler, ThreadCallback callback, object arg)
 {
     // 考虑到对LinkedList的资源竞争,所以必须在主线程中调用
     if (!Engine.IsMainContext())
         throw new Exception("仅允许在主逻辑线程中调用此方法");
     if (handler == null)
         throw new ArgumentNullException("执行体不能为null");
     // 构建Job对象并进行排队,由于做了并发控制,所以必须要进行排队
     listTask.AddLast(new ThreadTask(handler, callback, arg));
 }
예제 #3
0
    public string start_thread(string uid, ThreadCallback callback, object state = null)
    {
        return(_schedulerService.StartThread(uid, p =>
        {
            var pythonDictionary = new PythonDictionary
            {
                ["thread_uid"] = uid,
                ["state"] = p.State
            };

            callback(pythonDictionary);
        }, state));
    }
예제 #4
0
        private void RunAtualizaGrid()
        {
            Task.Run(() =>
            {
                while (!ThreadToken.IsCancellationRequested)
                {
                    if (!ThreadToken.IsCancellationRequested)
                    {
                        Task.Delay(TimeSpan.FromSeconds(1)).Wait(ThreadToken);
                    }

                    if (!ThreadToken.IsCancellationRequested)
                    {
                        ThreadCallback callback = new ThreadCallback(AtualizaGrid);
                        this.Invoke(callback);
                    }
                }
            }, ThreadToken);
        }
예제 #5
0
 // The constructor obtains the state information and the
 // callback delegate.
 public ThreadWithState(string h, ThreadCallback callbackDelegate)
 {
     host     = h;
     callback = callbackDelegate;
 }
예제 #6
0
 public ThreadWithState(int x, int y, ThreadCallback tc)
 {
     this.x        = x;
     this.y        = y;
     this.callback = tc;
 }
예제 #7
0
 public static void QueueUserWorkItem(ThreadCallback callback)
 {
     ThreadingBridge.ExecuteThreaded(() => { callback(null); });
 }
예제 #8
0
        public static void QueueUserWorkItem(ThreadCallback callback)
        {
			ThreadingBridge.ExecuteThreaded(() => { callback(null); });
        }
예제 #9
0
 public void Enqueue(Control control, Delegate invoke, ThreadCallback callback, params object[] invokeParams)
 {
     this.Enqueue(new ControlInvocationHandler(control.Invoke), callback, new object[] { invoke, invokeParams });
 }
예제 #10
0
 public ThreadTask(ThreadHandler handler, ThreadCallback callback, object arg)
 {
     mHandler = handler;
     mCallback = callback;
     mArg = arg;
     mOutArg = null;
     mOutExp = null;
     // 自行构建线程,但不开始
     mThread = new Thread(new ParameterizedThreadStart(ThreadStart));
 }
예제 #11
0
 // 完成,引发回调,将变量赋值为null
 public void Done()
 {
     if (mCallback != null && mOutExp == null)
     {
         mCallback(mOutArg);
     }
     if (mOutExp != null)
     {
         // 想办法自动抛出去
         Logger.LogException(mOutExp);
     }
     mThread = null;
     mHandler = null;
     mArg = null;
     mCallback = null;
     mOutArg = null;
     mOutExp = null;
 }