0

我是新手,我正在尝试为我的 Socket 对象的 BeginConnect 方法创建一个 TAP-over-APM 包装器

public static Task ConnectTaskAsync(this Socket socket, EndPoint endpoint)
{
    return TaskFactory.FromAsync(socket.BeginConnect, socket.EndConnect, endpoint, null);
}

但是,我在静态上下文中遇到FromAsync“无法访问非静态方法”方法的错误。FromAsync

我的代码应该如何?

4

2 回答 2

3

正如错误试图告诉您的那样,您需要一个TaskFactory.

您可以使用默认的单例实例 ( Task.Factory),也可以使用其构造函数之一创建自己的实例。

于 2013-07-04T15:42:34.750 回答
-1

您可以static在方法中调用方法,none static但不能在静态方法中调用非静态方法。

因此,要么将其更改FromAsync为静态,要么创建它的实例。

于 2013-07-04T15:43:34.130 回答