Exemple #1
0
 private void CreateProcessAsync()
 {
     Task.Factory.StartNew(() => {
         lock (_locker) {
             try {
                 // 清理除当前外的Temp/Kernel
                 Cleaner.Instance.Clear();
                 NTMinerConsole.UserOk("场地打扫完毕");
                 // 应用超频
                 if (NTMinerContext.Instance.GpuProfileSet.IsOverClockEnabled(MainCoin.GetId()))
                 {
                     NTMinerConsole.UserWarn("应用超频,如果CPU性能较差耗时可能超过1分钟,请耐心等待");
                     var cmd = new CoinOverClockCommand(coinId: MainCoin.GetId());
                     AddOnecePath <CoinOverClockDoneEvent>("超频完成后继续流程", LogEnum.DevConsole,
                                                           message => {
                         // pathId是唯一的,从而可以断定该消息一定是因为该命令而引发的
                         ContinueCreateProcess();
                     }, location: this.GetType(), pathId: cmd.MessageId);
                     // 超频是在另一个线程执行的,因为N卡超频当cpu性能非常差时较耗时
                     VirtualRoot.Execute(cmd);
                 }
                 else
                 {
                     ContinueCreateProcess();
                 }
             }
             catch (Exception e) {
                 Logger.ErrorDebugLine(e);
                 NTMinerConsole.UserFail("挖矿内核启动失败,请联系开发人员解决");
             }
         }
     });
 }
Exemple #2
0
        public override string GenerateScript()
        {
            try
            {
                //generate script and write to folder
                string command = EXENAME + " -epool " + MainCoinConfigurer.Pool;
                command += " -ewal " + MainCoinConfigurer.Wallet;
                command += " -epsw x ";
                if (DualCoin != null)
                {
                    command += " -dpool " + DualCoinConfigurer.Pool;
                    command += " -dwal " + DualCoinConfigurer.Wallet;
                    command += " -ftime 10 ";
                    command += " -mode 0 ";//dual mining mode
                    command  = DualCoin.GetScript(command);
                }
                else
                {
                    command += " -mode 1 ";//eth only mode
                }
                command += " -allpools 1 ";

                command = MainCoin.GetScript(command);

                Script = SCRIPT1 + command;
                AutomaticScriptGeneration = true;
                SaveScriptToDB();
                return(Script);
            }
            catch (Exception e)
            {
                return("");
            }
        }
Exemple #3
0
        private void CreateProcessAsync()
        {
            Task.Factory.StartNew(() => {
                lock (_locker) {
                    try {
#if DEBUG
                        NTStopwatch.Start();
#endif
                        // 清理除当前外的Temp/Kernel
                        Cleaner.Instance.Clear();
#if DEBUG
                        var elapsedMilliseconds = NTStopwatch.Stop();
                        if (elapsedMilliseconds.ElapsedMilliseconds > NTStopwatch.ElapsedMilliseconds)
                        {
                            Write.DevTimeSpan($"耗时{elapsedMilliseconds} {this.GetType().Name}.{nameof(CreateProcessAsync)}[{nameof(Cleaner)}.{nameof(Cleaner.Clear)}]");
                        }
#endif
                        Write.UserOk("场地打扫完毕");
                        // 应用超频
                        if (NTMinerContext.Instance.GpuProfileSet.IsOverClockEnabled(MainCoin.GetId()))
                        {
                            Write.UserWarn("应用超频,如果CPU性能较差耗时可能超过1分钟,请耐心等待");
                            var cmd = new CoinOverClockCommand(coinId: MainCoin.GetId());
                            AddOnecePath <CoinOverClockDoneEvent>("超频完成后继续流程", LogEnum.DevConsole,
                                                                  message => {
                                // pathId是唯一的,从而可以断定该消息一定是因为该命令而引发的
                                ContinueCreateProcess();
                            }, location: this.GetType(), pathId: cmd.MessageId);
                            // 超频是在另一个线程执行的,因为N卡超频当cpu性能非常差时较耗时
                            VirtualRoot.Execute(cmd);
                        }
                        else
                        {
                            ContinueCreateProcess();
                        }
                    }
                    catch (Exception e) {
                        Logger.ErrorDebugLine(e);
                        Write.UserFail("挖矿内核启动失败,请联系开发人员解决");
                    }
                }
            });
        }