Предположим, у меня есть эта функция:C# породит новую задачу
void DoWork()
{
//do long work
}
Я хочу эту функцию, чтобы быть выполнена в другом потоке. Я привык использовать потоки, так что один из способов выполнить его на нити:
new Thread(DoWork).Start();
Я пытаюсь узнать новую функцию task/await
C#, так что я модифицировал метод
async Task DoWork()
{
await Task.Run(delegate() { /*do stuff*/});
}
Теперь я могу использовать это так:
DoWork().Wait(0);
Или я могу изменить метод снова:
async void DoWork()
{
await Task.Run(delegate() { /*do stuff*/});
}
А теперь просто позвоните:
DoWork();
Какое решение я должен использовать? Мне не нужен результат задания и не дожидаюсь его завершения.
Я нашел это видео весьма полезным: https://www.youtube.com/watch?v=6_GTdR0gBVE –
как справочник по знанию http://blog.stephencleary.com/2014/04/a-tour-of -task-part-0-overview.html – Vikas
Если вам не нужен результат задания и не дожидался его завершения - в чем причина использования 'async/aw ait'? Вы можете запустить задачу и забыть об этом: 'Task.Run (() => {/ * do stuff * /})'. 'async/await' полезен, когда вам нужно выполнить некоторую работу после завершения задачи. –