質問

I have the following program that uses async operation but the returning IAsyncResult.AsyncState is always null.

What I'm doing wrong?

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);
    }
}
役に立ちましたか?

解決

cant you use the following code in the BeginLogin method

function.BeginInvoke(userName, password, callback, this);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top