pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

AsyncCTP:創(chuàng)建一個 IAwaitable 的類

AsyncCTP: Creating a class that is IAwaitable(AsyncCTP:創(chuàng)建一個 IAwaitable 的類)
本文介紹了AsyncCTP:創(chuàng)建一個 IAwaitable 的類的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我發(fā)現(xiàn)自己想要實(shí)現(xiàn)一個 IAwaitable 類(實(shí)現(xiàn)異步調(diào)用而不阻塞線程的東西).

I found myself wanting to implement an IAwaitable class (something that implements asynchronous calls without blocking threads).

我安裝了最新版本的 AsyncCTP,編譯器說我需要一個 IsCompleted() 成員.好的,所以 CTP 預(yù)覽已經(jīng)移動了一點(diǎn)(我明白了,就像預(yù)覽一樣)

I've got the most recent version of AsyncCTP installed, and the compiler is saying that I need an IsCompleted() member. Okay, so the CTP preview has moved on a little bit (I get that, like it's a preview)

問題:現(xiàn)在AsyncCTP 語言擴(kuò)展期望什么接口?

Question: What interface are the AsyncCTP language extensions expecting now?

問題: 在所有這些中,我假設(shè)我可以通過 lamda/delegate 向IAwaitable"發(fā)出信號?這可能嗎?我們叫 EndAwait 嗎?智能感知建議您調(diào)用 EndAwait 來檢索結(jié)果......所以這聽起來不對.有什么想法嗎?

Question: In all this I'm assuming that I can signal to the "IAwaitable" via a lamda/delegate? Is this possible? Do we call EndAwait? The intellisense suggests that you call EndAwait to retrieve the result... so that doesn't sound right. Any ideas?

到目前為止,我發(fā)現(xiàn)的所有示例都針對 AsyncCTP 庫已經(jīng)實(shí)現(xiàn)的功能,例如:

All of the examples I've found so far are for features that the AsyncCTP library has already implemented such as:

  await new WebClient().DownloadStringTaskAsync(uri).ConfigureAwait(false);

來自 101 AsyncSamplesCS

背景:

我發(fā)現(xiàn)自己在 Jon Skeets 頁面上(再次)查看 這個例子

I find myself on Jon Skeets page (again) looking at this example

using System;

class Test
{
    static async void Main()
    {
        await new Awaitable();
    }
}

class Awaitable
{
    public Awaiter GetAwaiter()
    {
        return new Awaiter();
    }
}

class Awaiter
{
    public bool BeginAwait(Action continuation)
    {
        return false;
    }

    public int EndAwait()
    {
        return 1;
    }
}

推薦答案

隨著 SP1 的更新,您需要:

With the SP1 refresh, you need:

  • 某些 GetAwaiter() 方法(可能但不一定是擴(kuò)展方法)返回某些內(nèi)容(在您的示例中為 Awaiter),其中包含以下所有內(nèi)容:
    • 一個 bool IsCompleted 屬性 (get)
    • A void OnCompleted(Action callback)
    • 一個 GetResult() 方法,它返回 void,或等待操作的期望結(jié)果
    • Some GetAwaiter() method (possibly but not necessarily an extension method) that returns something (Awaiter in your example) with all of:
      • A bool IsCompleted property (get)
      • A void OnCompleted(Action callback)
      • A GetResult() method which returns void, or the desired outcome of the awaited operation

      但是,我建議您查看TaskCompletionSource - 我看了這個,結(jié)果出來了- 執(zhí)行我的幼稚實(shí)現(xiàn)(此處;已過時).你也可以將它用于 void 任務(wù),通過使用類似 TaskCompletionSource 的東西(并利用 Task也是一個無類型的Task).

      However, I suggest you look at TaskCompletionSource<T> - I looked at this, and it out-performed my naive implementation (here; obsolete). You can also use it for void tasks, by using something like a TaskCompletionSource<bool> (and exploit the fact that the Task<bool> is also an untyped Task).

      這篇關(guān)于AsyncCTP:創(chuàng)建一個 IAwaitable 的類的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

      【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Is there a C# library that will perform the Excel NORMINV function?(是否有執(zhí)行 Excel NORMINV 函數(shù)的 C# 庫?)
Select x random elements from a weighted list in C# (without replacement)(從 C# 中的加權(quán)列表中選擇 x 個隨機(jī)元素(無需替換))
Create a summary description of a schedule given a list of shifts(給定輪班列表,創(chuàng)建時間表的摘要描述)
C# Normal Random Number(C# 普通隨機(jī)數(shù))
Standard deviation of generic list?(通用列表的標(biāo)準(zhǔn)偏差?)
How can I make a ksoap2 call in async task?(如何在異步任務(wù)中進(jìn)行 ksoap2 調(diào)用?)
主站蜘蛛池模板: 分光色差仪,测色仪,反透射灯箱,爱色丽分光光度仪,美能达色差仪维修_苏州欣美和仪器有限公司 | 电磁流量计_智能防腐防爆管道式计量表-金湖凯铭仪表有限公司 | 双能x射线骨密度检测仪_dxa骨密度仪_双能x线骨密度仪_品牌厂家【品源医疗】 | 优考试_免费在线考试系统_培训考试系统_题库系统_组卷答题系统_匡优考试 | 废气处理_废气处理设备_工业废气处理_江苏龙泰环保设备制造有限公司 | 英国雷迪地下管线探测仪-雷迪RD8100管线仪-多功能数字听漏仪-北京迪瑞进创科技有限公司 | 3A别墅漆/3A环保漆_广东美涂士建材股份有限公司【官网】 | 气动隔膜泵厂家-温州永嘉定远泵阀有限公司| 废气处理_废气处理设备_工业废气处理_江苏龙泰环保设备制造有限公司 | 洛阳永磁工业大吊扇研发生产-工厂通风降温解决方案提供商-中实洛阳环境科技有限公司 | 蔬菜配送公司|蔬菜配送中心|食材配送|饭堂配送|食堂配送-首宏公司 | 气体热式流量计-定量控制流量计(空气流量计厂家)-湖北南控仪表科技有限公司 | 福建珂朗雅装饰材料有限公司「官方网站」 | 粉末包装机-给袋式包装机-全自动包装机-颗粒-液体-食品-酱腌菜包装机生产线【润立机械】 | 泰来华顿液氮罐,美国MVE液氮罐,自增压液氮罐,定制液氮生物容器,进口杜瓦瓶-上海京灿精密机械有限公司 | 深圳展厅设计_企业展馆设计_展厅设计公司_数字展厅设计_深圳百艺堂 | 液氮罐_液氮容器_自增压液氮罐_杜瓦瓶_班德液氮罐厂家 | 浙江建筑资质代办_二级房建_市政_电力_安许_劳务资质办理公司 | 瓶盖扭矩仪(扭力值检测)-百科| 电销卡 防封电销卡 不封号电销卡 电话销售卡 白名单电销卡 电销系统 外呼系统 | PVC快速门-硬质快速门-洁净室快速门品牌厂家-苏州西朗门业 | SDG吸附剂,SDG酸气吸附剂,干式酸性气体吸收剂生产厂家,超过20年生产使用经验。 - 富莱尔环保设备公司(原名天津市武清县环保设备厂) | 上海道勤塑化有限公司| 洁净棚-洁净工作棚-无菌室-净化工程公司_北京卫护科技有限公司 | 仿真植物|仿真树|仿真花|假树|植物墙 - 广州天昆仿真植物有限公司 | 喷砂机厂家_自动喷砂机生产_新瑞自动化喷砂除锈设备 | 净水器代理,净水器招商,净水器加盟-FineSky德国法兹全屋净水 | 压力喷雾干燥机,喷雾干燥设备,柱塞隔膜泵-无锡市闻华干燥设备有限公司 | 砍排机-锯骨机-冻肉切丁机-熟肉切片机-预制菜生产线一站式服务厂商 - 广州市祥九瑞盈机械设备有限公司 | 货车视频监控,油管家,货车油管家-淄博世纪锐行电子科技 | 杭州火蝠电商_京东代运营_拼多多全托管代运营【天猫代运营】 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | SOUNDWELL 编码器|电位器|旋转编码器|可调电位器|编码开关厂家-广东升威电子制品有限公司 | 亮点云建站-网站建设制作平台| 阻燃剂-氢氧化镁-氢氧化铝-沥青阻燃剂-合肥皖燃新材料 | 电力电子产业网| PC阳光板-PC耐力板-阳光板雨棚-耐力板雨棚,厂家定制[优尼科板材] | 海尔生物医疗四川代理商,海尔低温冰箱四川销售-成都壹科医疗器械有限公司 | 高低温万能试验机_拉力试验机_拉伸试验机-馥勒仪器科技(上海)有限公司 | 粘度计维修,在线粘度计,二手博勒飞粘度计维修|收购-天津市祥睿科技有限公司 | 合同书格式和范文_合同书样本模板_电子版合同,找范文吧 |