0

非同期操作を使用する次のプログラムがありますが、返されるIAsyncResult.AsyncStateは常にnullです。

私が間違っているのは何ですか?

public interface ICommandService
{
[OperationContract(AsyncPattern = true)]
IAsyncResult BeginLogin(string userName, string password, AsyncCallback callback, object state);

string EndLogin(IAsyncResult result);
}

class CommandService : ICommandService
{
    public string Login(string userName, string password)
    {            
        return "dorcohen";
    }

    private Func<string, string, string> _LoginDelgateObject;

    public IAsyncResult BeginLogin(string userName, string password, AsyncCallback callback, object state)
    {
        Func<string, string, string> function = new Func<string, string, string>(Login);
        _LoginDelgateObject = function;
        IAsyncResult result = function.BeginInvoke(userName, password, callback, state);
        return result;
    }

    public string EndLogin(IAsyncResult result)
    {
        CommandService test = result.AsyncState as CommandService;
        return test._LoginDelgateObject.EndInvoke(result);
    }
}
4

1 に答える 1

1

BeginLoginメソッドで次のコードを使用できません

function.BeginInvoke(userName, password, callback, this);
于 2012-09-12T07:33:17.003 に答える