9
TcpClient接続を受け入れ、クライアントが接続された後にタスク "ConnectedAction"を実行するメソッドを作成しようとしています。デリゲート "ConnectedAction"を実行するために作成された新しいタスクを作成しようとすると、コンパイルエラーが発生します。Task.Runを使用する方法(アクション<T>)
引数1:私は、メソッドが「ConnectedAction」メソッドを実行してに空白を返すようにしようとしているため、このエラーがあると信じている「System.Func」
に「無効」から変換することはできませんTask.Runパラメーター。
タスクで「ConnectedAction」デリゲートを実行するにはどうすればよいですか?
class Listener
{
public IPEndPoint ListenerEndPoint {get; private set;}
public int TotalAttemptedConnections { get; private set; }
public Action<TcpClient> ConnectedAction { get; private set; }
public Listener(IPEndPoint listenerEndPoint, Action<TcpClient> connectedAction)
{
ConnectedAction = connectedAction;
ListenerEndPoint = listenerEndPoint;
Task.Factory.StartNew(Listen, TaskCreationOptions.LongRunning);
}
private void Listen()
{
TcpListener tcpListener = new TcpListener(ListenerEndPoint);
tcpListener.Start();
while (true)
{
TcpClient tcpClient = tcpListener.AcceptTcpClient();
TotalAttemptedConnections++;
//Error here
Task.Run(ConnectedAction(tcpClient));
}
}
}
私が探していたものです。ありがとう! –