0

我有以下使用异步操作的程序,但返回的 IAsyncResult.AsyncState 始终为空。

我做错了什么?

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 回答