private async Task <SocketMessage?> NextMessageAsync(IStandard <SocketMessage> standard, TimeSpan?timeOut = null, CancellationToken token = default) { timeOut ??= _defaultTimeout; var eventTrigger = new TaskCompletionSource <SocketMessage>(); var cancelTrigger = new TaskCompletionSource <bool>(); token.Register(() => cancelTrigger.SetResult(true)); async Task Handler(SocketMessage message) { var result = await standard.CheckAsync(this, message).ConfigureAwait(false); if (result) { eventTrigger.SetResult(message); } } Client.MessageReceived += Handler; var trigger = eventTrigger.Task; var cancel = cancelTrigger.Task; var delay = Task.Delay(timeOut.Value); var task = await Task.WhenAny(trigger, delay, cancel).ConfigureAwait(false); Client.MessageReceived -= Handler; if (task == trigger) { return(await trigger.ConfigureAwait(false)); } return(null); }
protected void OnInitialized(ScoreInfo scoreInfo) { _oldValue = scoreInfo.Score; _nowValue = scoreInfo.Score; _key = scoreInfo.ID; _standard = StandardFactory.getInstance("Normal"); }
public StandardProxy(IStandard target) { if (target == null) throw new ArgumentNullException("target"); _target = target; }
public StandardProxy(IStandard target) { if (target == null) { throw new ArgumentNullException("target"); } _target = target; }
public AdmissionController(IStudent repository, IAdmission admission, IAdmissionPay admissionPay, IStandard standard, IHostingEnvironment env, IEmailService emailService) { StudentRepository = repository; _admission = admission; _admissionPay = admissionPay; _Standard = standard; this.env = env; this.emailService = emailService; }
internal StockItemBarcodeResult(IStandard standard, StockItem stockItem) { this.Standard = standard; this.StockItem = stockItem; }
static async Task RunTest(IStandard c) { var huga1 = await c.NullableCheck(false); var huga2 = await c.NullableCheck(true); }
/// <summary> /// 构建一个解析配置 /// </summary> /// <param name="standard">解析标准</param> public CsvParserOptions(IStandard standard) { Standard = standard; SkipHeader = false; AnnotationChar = ';'; }
// 다형성(융통성) public CarRepair(IStandard car) => car.Run();
private StockItemBarcodeResult BuildResultObject(string barcode, IStandard standard) { var stockItem = standard.Parse(); return(new StockItemBarcodeResult(standard, stockItem)); }
public StockItemBarcodeResult GetBarcodeData(string barcode, IStandard standard) { return(this.BuildResultObject(barcode, standard)); }
private String RetrieveDocumentation(IStandard standard) { return(standard.GetDocumentation); }
public StandardController(IStandard standard) { this._standard = standard; }