我是新手,我正在尝试为我的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
”时收到错误。
我的代码应该如何?
答案 0 :(得分:3)
由于错误试图告诉您,您需要一个TaskFactory
的实例。
您可以使用默认的单例实例(Task.Factory
),也可以使用其构造函数之一创建自己的实例。
答案 1 :(得分:-1)
您可以在static
方法中调用none static
方法,但不能在静态方法中调用非静态方法。
因此,要么将FromAsync
更改为静态,要么创建它的实例。