Я бы хотел, чтобы все ожидания выполнялись одновременно, поэтому все текстовые блоки будут обновляться более или менее одновременно. Или, может быть, не в одно и то же время - каждый TextBlock будет обновляться по мере завершения соответствующего метода ожидания.
blockquote>Затем определите несколько новых методов:
private async Task<TFirst> GetFirstListFilesAndDisplayAsync() { var firstList = await GetFirstListFilesAsync(); textBlock1.Text = "found " + firstList.Count + " first list's results"; } private async Task<TSecond> GetSecondListFilesAndDisplayAsync() { var secondList = await GetSecondListFilesAsync(); textBlock2.Text = "found " + secondList.Count + " second list's results"; } private async Task<TThird> GetThirdListFilesAndDisplayAsync() { var thirdList = await GetThirdListFilesAsync(); textBlock3.Text = "found " + thirdList.Count + " third list's results"; }
И затем вызовите все они одновременно:
var firstTask = GetFirstListFilesAndDisplayAsync(); var secondTask = GetSecondListFilesAndDisplayAsync(); var thirdTask = GetThirdListFilesAndDisplayAsync(); await Task.WhenAll(firstTask, secondTask, thirdTask); firstList = await firstTask; secondList = await secondTask; thirdList = await thirdTask;
Получил это, модуль должен быть импортирован по его полному пути, а также для политики выполнения как для 64-разрядной PowerShell, так и для 32-разрядной PowerShell необходимо установить значение Unrestricted (или что-то другое, кроме ограниченного в зависимости от вашего случая) , Вот код:
static void Main(string[] args)
{
InitialSessionState initial = InitialSessionState.CreateDefault();
initial.ImportPSModule(new string[] {"C:\\Program Files\\Common Files\\Microsoft Lync Server 2010\\Modules\\Lync\\Lync.psd1"} );
Runspace runspace = RunspaceFactory.CreateRunspace(initial);
runspace.Open();
PowerShell ps = PowerShell.Create();
ps.Runspace = runspace;
ps.Commands.AddCommand("Get-csuser");
foreach (PSObject result in ps.Invoke())
{
Console.WriteLine(result.Members["Identity"].Value);
}
}
Попробуйте использовать метод AddCommand класса PowerShell.
ps.AddCommand("import-module Lync");
Или вы можете использовать класс Runspace, вы можете найти здесь пример: http://www.codeproject.com/ Статьи / 18229 / How-работай-PowerShell-скриптов-из-C