Использование async/await - C#
Формулировка задачи:
пытался написать такой тестовый код: нифига не работает, я видимо что-то неправильно делаю. Что именно, не знаю
нифига не врубаюсь.
using System;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApplication40
{
class Program
{
static void Main()
{
var task = Task.Factory.StartNew(Body);
task.Wait();
Console.ReadKey();
}
private static async void Body()
{
var r1 = await Post();
Console.WriteLine("r1 started");
var r2 = await Post();
Console.WriteLine("r2 started");
Console.WriteLine("r1 = {0}, r2 = {1}", r1, r2);
}
public static async Task<bool> Post()
{
return await Task.Factory.StartNew(() =>
{
Thread.Sleep(1000);
Console.WriteLine("Task finished");
return true;
});
}
}
}
А когда написал так, заработало
using System;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApplication40
{
class Program
{
static void Main()
{
var task = Task.Factory.StartNew(Body);
task.Wait();
Console.ReadKey();
}
private static async void Body()
{
Console.WriteLine("Beginning r1");
var r1 = await Post();
Console.WriteLine("Beginning r2");
var r2 = await Post();
Console.WriteLine("r1 = {0}, r2 = {1}", r1, r2);
}
public static async Task<bool> Post()
{
return await Task.Factory.StartNew(() =>
{
Thread.Sleep(1000);
Console.WriteLine("Task finished");
return true;
});
}
}
}Решение задачи: «Использование async/await»
textual
Листинг программы
async void SelectMC()
{
workout.Clear();
if (Tools.FlagMC != 0)
{
if (WindowState == FormWindowState.Normal) ClientSize = new Size(1195, 679);
await Task.Delay(100);
Controls.Remove(info_calculator);
workin.PageAndObjectAdd();
SplitContainer.Visible = true;
if(workin.Panel.TabCount != 0) tools.logotype_image(workin.Panel.SelectedTab.Name);
}
else
{
SplitContainer.Visible = false;
Controls.Add(info_calculator);
tools.logotype_image("default");
if (WindowState == FormWindowState.Normal) ClientSize = new Size(954, 151);
}
}