可以从线程调用返回类型为list的方法

smv*_*smv 7 c# asp.net multithreading

我有一个方法,如下所示,它调用一个服务.

如何通过线程运行此方法?

public List<AccessDetails> GetAccessListOfMirror(string mirrorId,string server)
{
    List<AccessDetails> accessOfMirror = new List<AccessDetails>();
    string loginUserId = SessionManager.Session.Current.LoggedInUserName;
    string userPassword = SessionManager.Session.Current.Password;

    using (Service1Client client = new Service1Client())
    {
        client.Open();
        accessOfMirror = client.GetMirrorList1(mirrorId, server, null);
    }

    return accessOfMirror;
}
Run Code Online (Sandbox Code Playgroud)

cgo*_*erg 3

在 C# 3.5 或 4.0 中您可以执行此操作。

var task = Task.Factory.StartNew<List<AccessDetails>>(() => GetAccessListOfMirror(mirrorId,server))
.ContinueWith(tsk => ProcessResult(tsk));

private void ProcessResult(Task task)
{
    var result = task.Result;
}
Run Code Online (Sandbox Code Playgroud)

在 C# 4.5 中,有await/async 关键字,它是上面的一些糖分

public async Task<List<AccessDetails>> GetAccessListOfMirror(string mirrorId,string server)

var myResult = await GetAccessListOfMirror(mirrorId, server)
Run Code Online (Sandbox Code Playgroud)