- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个具有以下签名的异步方法:
IAsyncResult BeginGetMyNumber(string foo, string bar, string bat, int bam, AsyncCallback callback, object state)
我想像这样使用 Factory.FromAsync 来执行它:
var result = Task<int>.Factory.FromAsync(
instance.BeginGetMyNumber,
instance.EndGetMyNumber,
"foo",
"bar",
"bat",
100, /*bam*/
null);
但我收到以下错误:
Argument 1: cannot convert from 'method group' to 'System.Func'
似乎没有合适的重载 FromAsync 方法 http://msdn.microsoft.com/en-us/library/system.threading.tasks.taskfactory.fromasync.aspx ,它在 BeginXXX 方法上最多只支持 5 个参数(包括回调和状态)。
除了重构 BeginXXX 方法以获取一个对象而不是六个参数之外,还有没有其他方法可以使用 FromAsync 来执行它?
最佳答案
result = Task<string>.Factory.FromAsync(
(callback, state) => instance.BeginGetMyNumber("foo", "bar", "bat", 1, callback, state),
instance.EndGetMyNumber, state: null);
此技术(部分函数应用程序)适用于具有任意数量输入参数的 begin 方法。
关于c# - BeginXXX 中 FromAsync 的参数太多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15582450/
我正在尝试将一个应用程序从使用 BeginXXX 方法和 AsyncCallbacks 重写为使用 async/await 和 XXXAsync 方法的应用程序。但是我在性能方面遇到了一些麻烦。例如,
我有一个具有以下签名的异步方法: IAsyncResult BeginGetMyNumber(string foo, string bar, string bat, int bam, AsyncCal
假设我有一些 APM(BeginXxx、EndXxx)模式异步方法(作为我调用的某些 WCF 服务代理的一部分): public interface ISomeService { IAsync
在寻找一种优雅的方式从 UDP 套接字异步接收数据报流时,我遇到了这个问题:How to use asynchronous Receive for UdpClient in a loop? 我理解第一
我想通过许多 APM 样式的异步方法重新使用我的代码。每个方法都有一个 BeginXXX 和一个 EndXXX 签名对。我想在每个函数中重复使用相同的回调。 我一直使用像下面这样的匿名方法,但我不确定
谁能告诉我当前的 .NET 套接字技术? 非阻塞套接字 如果我设置 Socket.Blocking = false 并使用异步操作 - 会发生什么? 除了 Socket.Select( )? Begi
当使用 Asynchronous Programming Model 时,通常建议将每个 BeginXXX 与 EndXXX 匹配,否则您可能会在异步操作完成之前泄漏资源。 如果类实现了 IDispo
我对 IOCP 有所了解,但我对 APM 有点困惑。 static FileStream fs; static void Main(string[] args) { fs = new File
假设我调用 HttpWebRequest.BeginGetRequestStream() 方法。 我知道这个方法是异步的,当它完成时,应该调用一个回调方法。 我非常确定的是,当调用回调方法时,CLR
我有一个 Asp.Net 应用程序,它使用 svcutil 生成的代理调用某些 WCF 服务。生成的代理具有 APM 模式中的异步方法(BeginXxx、EndXxx)。 我正在使用异步定位包以利用新
我是一名优秀的程序员,十分优秀!