Пример #1
0
        private void OperationTest(object s, LoadEndEventArgs e, string currentUrl)
        {
            lock (lockobject) {
                LogManager.WriteLog("state={0},currentUrl={1}".With(state, currentUrl));
                foreach (var operation in opsList)
                {
                    if (operation.PerviousStatus == state && currentUrl.Contains(operation.CurrentUrl))
                    {
                        LogManager.WriteLog("{2} {0} 跳转到下一个状态 {1} {3} ".With(state, operation.NextStatus, operation.index, operation.note));

                        state = operation.NextStatus;
                        ovtimeTick.Next(operation, e);//计时器重新计时
                        //记录当前注册账号的状态
                        //LogManager.LogAccontStatus("|{0}".With(state.ToString()));
                        taskRunner.LogAccontStatus("|{0}".With(state.ToString()));// MouseKeyBordHelper.CurrentIP

                        if (operation.OperationHandler != null)
                        {
                            int timeCount = RandomManager.random.Next(2, 5) * 1000;
                            LogManager.WriteLog("随机休息{0}毫秒".With(timeCount));

                            //BeginInvoke(new Action(() => {
                            new Thread(() => {
                                Thread.Sleep(timeCount);
                                try {
                                    operation.OperationHandler.Invoke(operation, e);
                                } catch (Exception e2) {
                                    LogManager.WriteLog(e2.StackTrace + e2.ToString());
                                }
                            }).Start();
                            //}));
                        }
                        break;
                    }
                }
            }
        }